我使用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程序。
答案 0 :(得分:5)
如果ApsScheduler需要线程,则应在uWSGI中使用--enable-threads启用它们