美文网首页
django定时任务 2019-03-05

django定时任务 2019-03-05

作者: _好孩子 | 来源:发表于2019-03-22 14:01 被阅读0次

# pip install apscheduler# pip install django-apscheduler

将: django_apscheduler 加到 项目setting.py INSTALLED_APPS 中

INSTALLED_APPS = (

      ...

      django_apscheduler,

)

执行:

# python manage.py migrate

会创建两张表:django_apscheduler_djangojob/django_apscheduler_djangojobexecution

通过进入后台管理能方便管理定时任务。

到任一 view.py 下

fromapscheduler.schedulers.backgroundimportBackgroundSchedulerfromdjango_apscheduler.jobstoresimportDjangoJobStore, register_events, register_jobscheduler = BackgroundScheduler()scheduler.add_jobstore(DjangoJobStore(),"default")scheduler.start()deftime_task(task):print("I'm a test job!")scheduler.add_job(time_task,"cron", id=task.name, hour=hour, minute=minute, second=0,kwargs={"task": task})register_events(scheduler)

遇到的问题:

WARNING base.run_job Line:120 Run time of job "time_task (trigger: cron[hour='11', minute='35', second='0'], next run at: 2018-05-31 11:35:00 CST)" was missed by 0:00:01.115909

需要加上参数 : misfire_grace_time 默认1s, 尽量大些

scheduler.add_job(time_task,"cron", id=task.name, hour=hour, minute=minute, second=0, misfire_grace_time=30,kwargs={"task": task})

相关文章

网友评论

      本文标题:django定时任务 2019-03-05

      本文链接:https://www.haomeiwen.com/subject/eghouqtx.html