问题描述
在以下代码段中,我尝试从暂停和 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 (将#修改为@)