我有一个简单的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
个任务属性,但是它不允许每个键限制。