我使用 webpy (webpy.org) 编写了一个应用程序。此 Web 应用程序的一部分是统计功能的重复后台任务。我使用APScheduler
python 库来执行 cron 样式的计划。因为app.run()
在开发过程中让 webpy 以独立模式运行。这个设置效果很好。
但是,当它部署时,我发现 APScheduler 不再起作用。部署过程几乎遵循这篇文章。我的入口点程序仍然打印成功的调度日志。但似乎 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 程序。