我的芹菜(v4.2)设置:
CELERY_ACCEPT_CONTENT = ['application/json']
CELERY_TASK_SERIALIZER = 'json'
CELERY_RESULT_SERIALIZER = 'json'
# CELERY_WORKER_MAX_TASKS_PER_CHILD = 5
CELERY_WORKER_PREFETCH_MULTIPLIER = 1
如果在所有任务上都设置了优先级,例如下面的示例,那么celery将尊重此设置以及上面提到的任务组
for l in range(20):
less_important_task.apply_async(priority=9) # simply sleeps for 2 seconds
more_important_task.apply_async(priority=0)
但是,如果两项任务均未设置优先级,那么celery将不会遵守more_important_task
优先级参数。
for l in range(20):
less_important_task.apply_async() # simply sleeps for 2 seconds, no priority
more_important_task.apply_async(priority=0)
我进行了搜索,除了关于Redis的优先级参数信息稀疏的事实外,似乎没有设置为任务设置默认优先级的设置。记住为每个呼叫都指定此字段似乎是错误的方法。