셀러리가 Rabbitmq와 협력하여 비동기 작업을 수행할 때, Rabbitmq의 메시지 수가 지속적으로 증가하지만 이러한 메시지는 실제로 작업에 의해 처리된 것으로 나타났습니다.
rabbimtq와 함께 제공되는 백엔드를 살펴보면 대기 중인 메시지에서 준비된 메시지 수와 전체 메시지 수가 5,000개를 넘었고 승인되지 않은 메시지의 값이 0인 것을 발견했습니다. 하지만 실제로 작동하게 되면 unacknowledged 값은 변하지만 결국 0이 됩니다. 셀러리 구성에는 특별한 것이 없습니다.
CELERY_IMPORTS = ('testtasks',)
BROKER_URL = ' amqp://guest:guest@localhost:5672//'
CELERY_RESULT_BACKEND = 'amqp://'
저쪽 셀러리 구성에 문제가 있는 걸까요?
rabbitmq를 3.3 이상 버전으로 업그레이드하면 해결되었습니다.
이전에는 Rabbitmq 버전 3.1을 사용했는데, 셀러리 버전은 3.1입니다
문제를 해결하는 실제 방법은 다음과 같이 작업에ignore_result=True 속성을 추가하는 것입니다
@app.task(ignore_result=True)