Я использую сельдерей, Django и RabbitMQ. Я ищу способ очистить старые сообщения из очереди сельдерея в RabbitMQ автоматически. Поэтому всякий раз, когда очередь создается по умолчанию, она должна очищать все сообщения старше х секунд.Как установить сельдерей с TTL, чтобы он удалял старые сообщения из очереди?
Это переменные, заданные в моих настройках.py.
CELERY_DEFAULT_EXCHANGE = 'celery'
CELERY_DEFAULT_EXCHANGE_TYPE = 'topic'
CELERY_DEFAULT_ROUTING_KEY = 'celery'
CELERY_DEFAULT_QUEUE = 'celery'
CELERY_EVENT_QUEUE_TTL= 30
Я также пробовал это, но это привело к тому, что никакое сообщение не было отправлено в RabbitMQ вообще.
CELERY_QUEUES = (
Queue('celery', routing_key='celery', queue_arguments={'x-message-ttl': 30}),
Queue('default', routing_key='default', queue_arguments={'x-message-ttl': 30}),
)
Любая идея приветствуется.