У меня есть две задачи. задача «heavy_task» нужен параллелизм 1 и «lite_task» нужен параллелизм 4django celery queue routing не работает
@task
def lite_task():
tabla = Proc_Carga()
sp = tabla.carga()
return None
@task()
def heavy_task(idprov,pfecha):
conci = Buscar_Conci()
spconc = conci.buscarcon(idprov,pfecha)
return None
Я определение маршрутов в моем файле settings.py:
BROKER_URL = 'redis://localhost:6379/0'
CELERY_IMPORTS = ("pc.tasks",)
CELERY_ACCEPT_CONTENT = ['json']
CELERY_TASK_SERIALIZER = 'json'
CELERY_RESULT_SERIALIZER = 'json'
CELERY_RESULT_BACKEND='djcelery.backends.cache:CacheBackend'
CELERY_ROUTES = {"tasks.heavy_task": {"queue": "heavy"},"tasks.lite_task": {"queue": "lite"}}
Я пытаюсь два преобразования приложений работники, задающие параллелизм таким образом
celery multi start heavy lite -A provcon -c:heavy 1 -c:lite 3
при первом вызове задачи heavy_task работает отлично и параллельность работ, но после вызова задачи lite_task в concurency для очереди тяжелые изменения.
Я стараюсь это:
celery -A provcon worker -Q heavy -c 1
И когда я исполню heavy_task задач, маршрутизация не будет работать, и задача не выполняется.
, но если использовать это:
celery -A provcon -c 1
все работает отлично, но я могу выполнить только одно задание на время, и мне нужно, чтобы быть в состоянии выполнить heavy_task с параллельности 1 и lite_task с параллелизм 3
Любые советы