首页 > 解决方案 > 芹菜节拍处理的消息未从就绪状态中删除

问题描述

我将芹菜节拍定义为:

@periodic_task(run_every=(crontab(minute='*/15')), name='threshold_monitor', ignore_result=True, queue='default', options={'queue': 'default'})
def threshold_monitor():
     #Threshold check login

Celery 通过 supervisord 运行:

celery -A ProjectName beat --loglevel=info

该任务每 15 分钟执行一次,但并未按预期从 celery 队列中删除。这个数字在 RabbitMq 中不断增长。这是预期的行为吗?如果没有,我该如何解决。

其他芹菜设置:

CELERY_RESULT_BACKEND = 'rpc'

CELERY_ACKS_LATE = True

CELERY_IGNORE_RESULT = True

CELERY_TASK_IGNORE_RESULT = True

CELERYD_PREFETCH_MULTIPLIER = 1

CELERY_TASK_DEFAULT_QUEUE = 'default'

CELERY_TASK_ALWAYS_EAGER = False

CELERYD_TASK_TIME_LIMIT = 60

RabbitMQ 队列截图:注意默认队列项被执行和释放,但是 celery 一直在增长。

在此处输入图像描述 在此处输入图像描述

标签: djangoasynchronousrabbitmqcelerymessage-queue

解决方案


推荐阅读