我在Heroku上运行的Django站点正在使用CloudAMQP来处理其预定的芹菜任务。CloudAMQP注册的消息比我拥有的任务多得多,我不明白为什么。
例如,在过去的几个小时里,我将运行大约150个预定任务(两个任务每分钟运行一次,另一个任务每5分钟运行一次),但是CloudAMQP控制台的消息数量增加了大约1,300条。
我的相关Django设置:
BROKER_URL = os.environ.get("CLOUDAMQP_URL", "")
BROKER_POOL_LIMIT = 1
BROKER_HEARTBEAT = None
BROKER_CONNECTION_TIMEOUT = 30
CELERY_ACCEPT_CONTENT = ['json',]
CELERY_TASK_SERIALIZER = 'json'
CELERY_RESULT_SERIALIZER = 'json'
CELERY_TASK_RESULT_EXPIRES = 7 * 86400
CELERY_SEND_EVENTS = False
CELERY_EVENT_QUEUE_EXPIRES = 60
CELERY_RESULT_BACKEND = None
CELERYBEAT_SCHEDULER = 'djcelery.schedulers.DatabaseScheduler'我的履历:
web: gunicorn myproject.wsgi --log-file -
main_worker: python manage.py celery worker --beat --without-gossip --without-mingle --without-heartbeat --loglevel=info查看Heroku日志,我只看到预期运行的计划任务的数量。
大多数情况下,RabbitMQ概览图看起来都是这样的:

我不太理解RabbitMQ,不知道其他面板是否能说明这个问题。我不认为他们有任何明显的东西可以解释所有这些信息。
我想至少了解额外的信息是什么,然后是否有一种方法,我可以消除部分或全部。
发布于 2017-06-26 12:57:58
几天前我也犯了同样的错误。对于那些遇到同样问题的人,CloudAMQP的文档建议在启动芹菜时添加一些参数():
--without-gossip --without-mingle --without-heartbeat“这将大大降低信息率。没有这些标志,芹菜将以不同的诊断和冗余心跳信息每秒发送数百条信息。”
事实上,到目前为止,这个问题已经解决了!你终于只能收到你的信息了。
https://stackoverflow.com/questions/39596553
复制相似问题