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 (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...