queue - 在 Pyramid 网络应用中,python 长时间运行任务

  显示原文与译文双语对照的内容
116 5

我需要在web应用程序( 正在检查代码,等等) 背景下运行一些任务而不阻塞视图。

典型 Queue/Celery 场景的扭曲是,我必须确保任务完成,甚至是web应用程序崩溃或者重新启动。

我正在考虑在数据库中记录 multiprocessing.Pool 参数,并启动 web webapp的所有不完整任务。这是可以行的,但是我想知道是否有更简单或者更多的成本有效的aproach?

更新:为什么 celery 本身不?我在某些项目中使用了 celery,它真的是一个很好的解决方案,但是对于这个任务来说我需要一个单独的服务器,通信,等等,而我只需要生成一些流程/线程,并检查它们是否成功。我需要一个解决方案,因为我需要避免elaborate的公司指导方针,程序,等等 和人力管理,我想避免这样做,我希望避免。

时间:原作者:0个回答

57 2

我建议你用 celery 。

celery 不需要自己的服务器,你可以让一个工人在同一台机器上运行。你还可以以使用SQL数据库,而不是"man of"等"真实"队列/消息服务器。

web服务器进程启动长时间运行任务的问题是:在生产环境中,web"员工"通常由服务器管理- 多个工作者可以在任何时候生成或者杀死。你方法的可行性将依赖于你所使用的web服务器及其配置。同时,每个工作人员都尝试执行一项任务,可能会遇到一些并发问题。

除了 celery 之外,另一个选项是查看,子系统,的后台程序,特别是如果你已经经使用。

原作者:
...