我使用 webpy (webpy.org) 编写了一个应用程序。这个网络应用程序的一部分是统计功能的重复后台任务。我使用 APScheduler
python 库来执行 cron 风格的计划。因为app.run()
让webpy在开发的时候以standalone模式运行。此设置运行良好。
然而,当它被部署时,我发现 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 程序。
最佳答案
如果 ApsScheduler 需要线程,你应该在 uWSGI 中使用 --enable-threads 启用它们
关于python - 带有 cron 任务的 uwsgi web 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9809033/