我正在研究一个烧瓶框架,试图安排一个工作,该工作将在午餐后30分钟内触发,并且只会发生一次。
我尝试使用 threading.Timer ,但由于我的工作调用了REST请求,我得到 RunTimeError:'在请求上下文之外工作' ,我无法解决。
从这个帖子中,我了解不建议在烧瓶服务器上使用线程模块: How do you schedule timed events in Flask?
因此,我正在寻找定时触发器作业的解决方案(不适用于间隔时间)。
看起来APscheduler必须以间隔为基础。
如果有任何帮助,我将不胜感激。
答案 0 :(得分:1)
apscheduler add_job方法可以使用date
触发器来执行您想要的操作。
专业提示:
如果您在烧瓶应用程序流程中使用apscheduler,当使用像gunicorn或uwsgi这样的wsgi服务器进行生产时,您将提交多次运行的工作(每个烧瓶工作者一个)。
遇到此问题时,gunicorn --preload选项并没有为我删除。
所以:
恕我直言,将gunicorn / flask和apscheduler分成两部分并使用主管是最干净但不那么复杂的解决方案。