使用cron任务的uwsgi web应用程序?

时间:2012-03-21 16:41:46

标签: python cron uwsgi web.py apscheduler

我使用webpy(webpy.org)编写了一个应用程序。此Web应用程序的一部分是统计功能的重复后台任务。我使用APScheduler python库来执行cron样式计划。因为app.run()让webpy在开发期间以独立模式运行。这种设置很好。

然而,当它部署时,我发现APScheduler不再起作用。部署过程几乎遵循this article。我的入口点程序仍然打印成功的调度日志。但是当没有收到请求时,似乎uwsgi将暂停正在运行的webpy应用程序(使线程暂停)。如果我刷新页面,APScheduler将唤醒,打印一些WARNING:apscheduler.scheduler:Run time of job "worker (trigger: cron[...], next run at: ..)" was missed by 0:04:36.389705消息。他们没有按照时间表运行。

我的问题是,在部署uwsgi webpy应用程序时如何安排cron样式任务。我看到uwsgi本身有cron支持。但我想知道如何将它与我的应用程序混合,如APScheduler(或替换它)?任务取决于应用程序的一些模块和动态属性,因此无法轻松转换为独立的.py程序。

1 个答案:

答案 0 :(得分:5)

如果ApsScheduler需要线程,则应在uWSGI中使用--enable-threads启用它们