2016-09-20 84 views
1

在Heroku上運行的我的Django站點使用CloudAMQP來處理其計劃的Celery任務。 CloudAMQP正在註冊比我有任務更多的消息,我不明白爲什麼。爲什麼我在Heroku上用CloudAMQP有這麼多Celery消息?

例如,在過去的幾個小時中,我將運行150個計劃任務(兩個每分鐘運行一次,另一個每五分鐘運行一次),但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' 

我Procfile:

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 overview

我不明白RabbitMQ的不夠了解,如果其他面板闡明這個問題光。我不認爲他們顯示任何明顯的,將佔所有這些消息。

我想至少了解額外的消息是什麼,然後是否有辦法消除部分或全部消息。

+0

您隨時可以通過電子郵件[email protected]與您的用戶名聯繫,我們會查看它 –

+0

謝謝Carl。我很習慣使用Stack Overflow我有時會忘記一些地方實際上有支持:) –

回答

0

我幾天前得到了同樣的錯誤。 對於那些誰得到了同樣的問題,CloudAMQP的文檔建議添加一些參數當您啓動芹菜:

--without-gossip --without-mingle --without-heartbeat 

「這將減少的消息速率基本上沒有這些 標誌芹菜將派數百名不同的 診斷和冗餘心跳消息每秒消息。「

事實上,這個問題到目前爲止修正了問題!你最終只會收到你發送的信息。