0

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

@shared_task(rate_limit="4/m")
    def my_task(a,b):
        ...

...

my_task.apply_async((x, y,),)

成功的任务

脚步

4

1 回答 1

4

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

于 2015-10-12T22:19:51.687 回答