0

我在 Celery 中有 4 个计划任务,每 N 秒执行一次。现在,应用程序逻辑只为每个任务提供一个工作人员(它从数据库中写入读取数据,并且不允许并行执行)。

但是我只能使用 CELERYD_CONCURRENCY = 1 为所有任务设置 1 个工作人员

如何为每个任务设置单个工作人员?谢谢

4

1 回答 1

0

我认为您的意思是您不希望您的 4 个任务并行运行?如果是这种情况,您应该使用子任务的“链”之类的东西,请参阅:

http://docs.celeryproject.org/en/latest/userguide/canvas.html#chains

只需使用 | 将您的任务添加到链中 运算符,然后使用 delay() 或 async_delay() 执行它。这样,您的下一个任务只会在前一个任务完成后开始。池中的一名工作人员将被分配给每个任务(可以是同一个工作人员或不同的工作人员)。

于 2013-02-19T08:15:38.570 回答