[英]Manual job execution outside of schedule in APScheduler
我有一份使用APScheduler中的cron
计划程序计划的工作,可以为我的Flask应用程序运行某种功能。
我还希望能够手动运行此功能,而不会中断我同样设置的时间表。
例如,假设任务设置为每天运行一次,那么我也想在用户执行特定操作时手动运行它。
重要的是,不能同时运行作业的两个实例(这就是为什么我不只是简单地调用函数本身)-因此,我试图使用APScheduler提出解决方案,以防止出现以下情况:在计划的运行繁忙时执行手动触发。
这实际上是此问题的重复: APScheduler如何立即触发作业
Lars Blumberg的答案就是为我解决的答案。 我用了这一行:
scheduler_object.get_job(job_id ="my_job_id").modify(next_run_time=datetime.datetime.now())
这样可以确保特定作业将立即运行,并保持先前的计划。 如果计划的作业已经在运行,则不会立即触发该作业(对我而言是所希望的行为)...除非您将max_instances
设置为大于1。类似地,如果您手动执行该作业并且在计划的运行时它正在运行触发后,除非max_instances
大于1,否则也不会执行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.