Очередь объявляет ошибку при использовании Celery send_task - PullRequest
0 голосов
/ 29 января 2020

Я использую python Сельдерей (4.3.0) и настройка сельдерея

task_acks_late = True
worker_prefetch_multiplier = 1
task_queues = [
    Queue('p', Exchange('p'), routing_key='p', queue_arguments={'x-max-priority': 9})
]

при использовании send_task, подобного этому

c = Celery('tasks', broker='rabbitmq')
c.send_task('p.tasks.mul', args=(1,2), queue='p', priority=1)

Поднимите подобные ошибки

amqp.exceptions.PreconditionFailed: Queue.declare: (406)
PRECONDITION_FAILED - неэквивалентный аргумент 'x-max-priority' для очереди 'p'
в vhost '/': не получено, но current это значение '9' типа 'signatureint'

Я думаю, что эта ошибка может вызывать проблемы с объявлением, когда сельдерей впервые объявляет очередь (внутри кодов в функции send_task).

Как можно отправлять аргументы типа x-max-priority при использовании send_task? (не используется apply_async или delay из-за вызова другой машины).

Спасибо.

...