Celery:分布式环境中活动任务的单个实例

时间:2013-03-25 11:18:55

标签: celery distributed-computing

我有一个要求,即我的应用程序提交某种任务。此任务由客户提交。为了确保它们最终不会提交太多任务,每次提交任务时,我都会检查正在运行的进程以及它们是否由同一客户端提交。如果是,则不会提交任务。 我想横向扩展这些任务。因此,我将在不同的计算机上运行多个工作程序,以确保更高的可用性,但之后我想确保只有一个任务实例正在被处理,并且该任务应在完成由同一客户端提交的另一个任务之前完成

例如,如果提交的任务的年表是 -

Client 1 submits t1 
Client 1 submits t2 
Client 2 submits t3

如果仍在处理t1且工作人员被释放,那么它应该选择t3而不是t2

我该如何解决这个问题? 速率限制不是一种选择,因为我无法确定这些任务需要多长时间。

谢谢,

0 个答案:

没有答案