我有一个简单的要求。我将apscheduler作为一个单独的进程运行。我有另一个jobproducer脚本,我想在其中向调度程序添加作业并运行它。在
这是我的调度程序代码
# appsched.py
from apscheduler.schedulers.blocking import BlockingScheduler
scheduler = BlockingScheduler()
scheduler.start()
这是我的工作制作人剧本
^{pr2}$不用说这没用。这两种方法都可以在商店里工作吗?如何与多个不同的作业生产者共享调度程序?
我遇到了一个类似的问题,我的调度进程是一个uWSGI MULE进程,还有一个单独的应用程序,我想在其中添加新的作业。在
看看BaseScheduler的
add_job()
函数:您可以看到问题:调度程序只在已经启动时才添加作业。在
幸运的是,解决方案非常简单,我们应该定义自己的“add job only”调度程序:
^{pr2}$然后我们可以立即添加cron作业:
别忘了配置调度程序!在我的例子中,我使用SQLAlchemy MySQL后端存储作业:
我不确定其他的jobstore,但是在我添加了一个新的作业之后,我不得不调用单独调度程序进程的
wakeup()
函数来“激活”该作业。我用uWSGI的信号系统实现了这一点。在相关问题 更多 >
编程相关推荐