仅当所有任务都具有优先级时,才使用带有Redis的Celery任务优先级

时间:2018-08-20 01:00:53

标签: celery django-celery

我的芹菜(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的优先级参数信息稀疏的事实外,似乎没有设置为任务设置默认优先级的设置。记住为每个呼叫都指定此字段似乎是错误的方法。

0 个答案:

没有答案