我需要在Web应用程序的后台运行一些任务(检查代码等),而不会阻塞视图。
在典型的队列/ Celery 场景中,需要注意的是,我必须确保任务完成,即使 Web 应用程序崩溃或重新启动,直到这些任务完成为止,无论它们的最终结果如何。
我考虑在数据库中记录 multiprocessing.Pool 的参数,并在 Web 应用程序重新启动时启动所有未完成的任务。这是可行的,但我想知道是否有更简单或更具成本效益的方法?
更新:为什么不使用 Celery?嗯,我在一些项目中使用过 Celery,它确实是一个很好的解决方案,但对于这个任务来说,它太大了:它需要一个单独的服务器、通信等,而我所需要的只是生成一些进程/线程,在其中执行一些工作(git clone..., svn co...)并检查它们是否成功或失败。另一个问题是,我需要尽可能地使解决方案尽可能小,因为我必须遵循复杂的公司指南、程序等,我需要通过的人力行政和官僚开销是我如果可以避免就更好了。
在典型的队列/ Celery 场景中,需要注意的是,我必须确保任务完成,即使 Web 应用程序崩溃或重新启动,直到这些任务完成为止,无论它们的最终结果如何。
我考虑在数据库中记录 multiprocessing.Pool 的参数,并在 Web 应用程序重新启动时启动所有未完成的任务。这是可行的,但我想知道是否有更简单或更具成本效益的方法?
更新:为什么不使用 Celery?嗯,我在一些项目中使用过 Celery,它确实是一个很好的解决方案,但对于这个任务来说,它太大了:它需要一个单独的服务器、通信等,而我所需要的只是生成一些进程/线程,在其中执行一些工作(git clone..., svn co...)并检查它们是否成功或失败。另一个问题是,我需要尽可能地使解决方案尽可能小,因为我必须遵循复杂的公司指南、程序等,我需要通过的人力行政和官僚开销是我如果可以避免就更好了。