这种方法的缺点是,有很多方法可能会失败,特别是在停止和重新启动Flask应用程序之后。
以下是我建议的一些方法,具体取决于您的约束条件:
您只需要编写一个脚本即可执行所需的任何任务,并cron每隔几分钟便会为您运行一次。优点:cron将为您定期运行它,并在系统启动时启动。缺点:如果任务花费太长时间,则可能同时运行多个脚本实例。您可以在这里找到一些解决此问题的方法。
supervisord是处理不同守护程序的一种巧妙方法。您可以将其设置为运行您的应用程序,后台脚本或同时运行两者,并使它们从服务器启动。唯一的缺点是您必须安装supervisord并确保服务器启动时其守护程序正在运行。
uwsgi是部署Flask应用程序的非常常用的方法。它具有很少的功能可用于管理后台工作人员。
Celery 是基于分布式消息传递的异步任务队列/作业队列。它专注于实时操作,但也支持调度。我认为这是安排后台任务的最佳解决方案为Flask应用程序或任何其他基于python的应用程序。但是使用它会带来一些额外的麻烦。您将至少介绍以下过程:-代理(rabbitmq或redis)-工作者-调度程序
您还可以supervisord管理上述所有过程,并在服务器启动时启动它们。
为了减少进程数,我强烈建议您使用crontab基于解决方案的解决方案,因为它可以使您走得很长。但是请确保您的后台脚本留下了执行跟踪或某种形式的日志。
| 归档时间: |
|
| 查看次数: |
28364 次 |
| 最近记录: |