我在Celery中有一个限速任务但是Flower中显示的结果看起来好像它正在处理一堆任务,然后服从速率限制。为什么会这样?我需要做些什么来确保它从一开始就服从速率限制吗?
@shared_task(rate_limit="4/m")
def my_task(a,b):
...
...
my_task.apply_async((x, y,),)
答案 0 :(得分:4)
你有多个工作人员消耗my_task吗?如果是这样,您的速率限制将不会生效,因为芹菜率限制每个工人(docs)。为了解决这个问题,您需要将my_task路由到只有一名工作人员从中消耗的队列。请参阅routing docs。