django集成Apscheduler

在django中有时候我们会有一些简单的调度需求,这是可以考虑集成Apscheduler

安装

pip3 install apscheduler
pip3 install django-apscheduler

在django的settings.py文件的INSTALLED_APPS加入'django_apscheduler'

执行python manage.py migrate 会在数据库给Apscheduler新生成两张表,任务表和任务执行表

在django任意app的views.py加入以下代码

#views.py
from apscheduler.schedulers.background import BackgroundScheduler
from django_apscheduler.jobstores import DjangoJobStore, register_job, register_events
scheduler = BackgroundScheduler()
scheduler.add_jobstore(DjangoJobStore(), 'default')


@register_job(scheduler, 'cron', id='test5', hour=17, minute=30)
def test_func():
    print("hello,django1")


@register_job(scheduler, 'interval', id='test6', seconds=30)
def test_func2():
    print("hello,django2")


register_events(scheduler)
scheduler.start()

django项目一启动,就会生成两个调度任务,一个每天17:30定时执行,另一个每隔30秒执行

如果想要更细粒度的开启、停止任务,就不能在用django-apscheduler,需要对apscheduler做进一步的开发。

原文地址:https://www.cnblogs.com/wangbin2188/p/15665468.html