Having trouble turning off auto_declare
in Kombu Producer (docs). As I understood correctly at Celery init you can pass kombu Producer in amqp=...
(docs) but I was not very successful with it. Having function which is using default kombu Producer as seen in documentation.
def celery_app(
service_name: str
) -> Celery:
return Celery(
__name__,
result_backend=settings.CELERY_RESULT_URL,
broker="%s/%s" % (settings.BASE_CELERY_BROKER_URL, service_name),
task_create_missing_queues=False,
celery_queue_ha_policy="all",
task_acks_late=True,
set_as_current=False,
result_extended=True,
)
I'd expect to just pass amqp=AMPQ(Producer(...))
like? :
return Celery(
__name__,
result_backend=settings.CELERY_RESULT_URL,
broker="%s/%s" % (settings.BASE_CELERY_BROKER_URL, service_name),
task_create_missing_queues=False,
celery_queue_ha_policy="all",
task_acks_late=True,
set_as_current=False,
result_extended=True,
amqp=AMQP(Producer(
channel="%s/%s" % (settings.BASE_CELERY_BROKER_URL,
service_name), # (amqp://...)?
exchange=...
auto_declare=False
))
)
but sadly that is not how it works. Can anyone help?
Thanks!