芹菜是否正确遵循我的速率限制?

grr*_*rrr 0 python django celery flower

我在 Celery 中有一个速率限制任务,但 Flower 中显示的结果使它看起来好像它正在立即处理一堆任务,然后遵守速率限制。为什么会发生这种情况?我需要做些什么来确保它从一开始就遵守速率限制吗?

@shared_task(rate_limit="4/m")
    def my_task(a,b):
        ...
Run Code Online (Sandbox Code Playgroud)

...

my_task.apply_async((x, y,),)
Run Code Online (Sandbox Code Playgroud)

成功的任务

脚步

Joh*_*cas 5

您是否有多个工作人员在使用 my_task?如果是这样,您的速率限制将不会生效,因为芹菜速率限制是每个工人的文档)。为了解决这个问题,您需要将 my_task 路由到只有一个工作人员从中使用的队列。请参阅路由文档