如何解决Django APScheduler 作业挂断没有错误
我使用 django-apscheduler 来管理任务。 但是在服务器启动一段时间后,工作停止工作,当我检查 django 管理页面时。 也没有错误日志。
这是我的runapscheduler.py
...
def start():
scheduler = BackgroundScheduler(timezone=settings.TIME_ZONE)
scheduler.add_jobstore(DjangoJobStore(),"default")
scheduler.add_job(
process_tt_file.start_tt_process,trigger=crontrigger(minute='5,20,35,50',hour='*'),id='process_tt_file',max_instances=1,replace_existing=True
)
logger.info("Added job 'process_tt_file'.")
...
try:
logger.info("Starting scheduler...")
scheduler.start()
except KeyboardInterrupt:
logger.info("Stopping scheduler...")
scheduler.shutdown()
logger.info("Scheduler shut down successfully!")
...
这是我的 urls.py
,我在 django 启动时启动 apscheduler
...
urlpatterns = ...
runapscheduler.start()
任务应该每 15 分钟运行一次。但不知何故,在我检查状态之前,apscheduler 并没有解雇这项工作。
我应该如何防止这种情况发生?
解决方法
simple_scheduler 不会错过时间。你可以试试
from simple_scheduler.event import event_scheduler
hour = ["0"+str(h) if h//10 == 0 else str(h) for h in range(0,24)]
minute = ["0"+str(h) if h//10 == 0 else str(h) for h in [5,20,35,50]]
WHEN = ["*|"+str(h)+":"+str(m) for h in hour for m in minute]
event_scheduler.add_job(target = process_tt_file.start_tt_process,when = WHEN,tz = settings.TIME_ZONE)
event_scheduler.run()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。