使用速率限制和每组工人的外币自定义芹菜

时间:2019-08-25 17:24:25

标签: python celery

我有一个简单的python celery任务:

@app.task
def simple_task(key, i):
    print('start', key, i)
    time.sleep(random.uniform(0.5, 1.5))
    print('finish', key, i)

...

def call_simple_tasks():
    for key in ['key1', 'key2', 'key3']:
        for i in range(10):
            simple_task.apply_async(args=[key, i])

是否可以通过两个条件自定义芹菜队列(使用routing_key或其他方式):

  • 只有相同键的X个任务可以同时执行(每组具有相同键的任务)

  • 任务速率限制必须为每个键2 / s(对于具有相同关键任务的每个组,启动频率不能超过每秒2个任务)

我找到了rate_limit个任务属性,但是它不允许每个键限制。

0 个答案:

没有答案