Dav*_*vid 2 django rabbitmq celery django-celery
我正在使用Celery,Django和RabbitMQ。我正在寻找一种自动从RabbitMQ的celery队列中清除旧邮件的方法。因此,无论何时默认情况下创建队列,都应清除所有早于x秒的消息。
这些是我在settings.py中设置的变量。
CELERY_DEFAULT_EXCHANGE = 'celery'
CELERY_DEFAULT_EXCHANGE_TYPE = 'topic'
CELERY_DEFAULT_ROUTING_KEY = 'celery'
CELERY_DEFAULT_QUEUE = 'celery'
CELERY_EVENT_QUEUE_TTL= 30
Run Code Online (Sandbox Code Playgroud)
我也尝试过这样做,但是导致没有消息发送到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}),
)
Run Code Online (Sandbox Code Playgroud)
任何想法都欢迎。
X-消息TTL在毫秒 - 不被秒。
您想在celery配置文件中放入以下内容:
from kombu import Exchange, Queue
CELERY_QUEUES = [
Queue(
'celery',
Exchange('celery'),
routing_key = 'celery',
queue_arguments = {
'x-message-ttl': 30000
}
)
]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1856 次 |
| 最近记录: |