如何解决APScheduler 作业未按计划执行
我正在尝试使用 gunicorn 和 supervisord 运行 apscheduler。没有 gunicorn,apscheduler 可以工作,但有时使用 gunicorn,apscheduler 不起作用。除了apscheduler,其他项目正在运行。 我正在使用以下命令使用 gunicorn 运行
/home/ubuntu/project/project_folder/venv/bin/gunicorn project.wsgi:application --timeout 120 --workers 2 --threads=3 --bind=0.0.0.0:2732
在 settings.py 文件中
from apscheduler.schedulers.background import BackgroundScheduler
from apscheduler.jobstores.redis import RedisJobStore
from apscheduler.executors.pool import ThreadPoolExecutor,ProcessPoolExecutor
logging.basicConfig(filename='logs/scheduler',level=logging.DEBUG,format='[%(asctime)s]: %(levelname)s : %(message)s')
logging.getLogger('apscheduler').setLevel(logging.DEBUG)
# scheduler = BackgroundScheduler(misfire_grace_time=20,executors=executors)
scheduler = BackgroundScheduler({'apscheduler.timezone': 'Asia/Calcutta'},job_defaults={'misfire_grace_time': None})
scheduler.add_jobstore(RedisJobStore(jobs_key='dev-jobs',run_times_key='dev_all_run_times'),'redis')
scheduler.start()
并将views.py文件中的作业设置为
start_date_of_job = model_object.start_date
start_time = dates.strptime(model_object.start_time,'%I.%M %p').time()
start_datetime_of_job = dates.combine(start_date_of_job,start_time)
settings.scheduler.add_job(function_to_run,'date',jobstore='redis',replace_existing=True,run_date=start_datetime_of_job,misfire_grace_time=None,id="start-" + str(model_object.id),args=[args list])
有时有效,有时无效。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。