如何解决使用 Gunicorn 在 apscheduler 中暂停、add_job、remove_job
在以下代码段中,我尝试从暂停和 remove_job
add_job
提供的 start
、 pause
、 BackgroundScheduler
。
apscheduler.schedulers
为了运行这个,我使用:
from flask import Flask
from apscheduler.schedulers.background import BackgroundScheduler
from apscheduler.jobstores.sqlalchemy import sqlAlchemyJobStore
def this_job():
print("the job")
app = Flask(__name__)
scheduler = BackgroundScheduler(
daemon=True,jobstores={"default": sqlAlchemyJobStore(url="sqlite:///jobs.sqlite")},)
scheduler.start()
@app.route("/")
def index():
return "Congratulations,it's a web app!"
@app.route("/remove_schedule")
def remove_job():
scheduler.remove_job(job_id="this_job")
return "job removed"
@app.route("/pause_scheduler")
def pause_scheduler():
scheduler.pause()
return "paused scheduler"
@app.route("/resume_scheduler")
def resume_scheduler():
scheduler.start(paused=True)
return "resume scheduler"
@app.route("/schedule")
def start_job():
scheduler.add_job(
"this_job","cron",id=this_job,year="*",month="*",day="*",minute="*",max_instances=2,replace_existing=True,misfire_grace_time=240,)
return "job started"
if __name__ == "__main__":
app.run(host="127.0.0.1",port=8080,debug=True)
为已创建的作业调用 remove_job 时,该作业已成功删除。但是当使用 gunicorn run:app -w 4 -t 10 --preload
再次创建作业时,作业似乎被添加但从未被调度程序执行。
另外,按照这个程序,程序在启动时挂起,我必须删除作业存储才能重新启动。
另一方面,在任何时候暂停调度程序,调度程序都不会暂停。
我是否遗漏了实施中的某些内容?或 /schedule
?还是一般的调度程序?
谢谢
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。