python - celery+rabbitmq異步任務(wù),隊列消息一直增加
問題描述
celery 配合 rabbitmq 進(jìn)行異步任務(wù)時,發(fā)現(xiàn) rabbitmq 里消息的數(shù)量是一直增加的,但是這些消息其實也已經(jīng)被 task 處理掉.
查看 rabbimtq 自帶的后臺,發(fā)現(xiàn) Queued messages 里面,ready 和 total 的數(shù)量都達(dá)到了 5000 多,unacknowledged 的值為 0。不過實際在工作的時候,unacknowledged 的值會變化的,但是最后會變成 0 celery 的配置也沒有特殊的地方,就只設(shè)置了如下的內(nèi)容 CELERY_IMPORTS = (’testtasks’,) BROKER_URL = ’amqp://guest:guest@localhost:5672//’ CELERY_RESULT_BACKEND = ’amqp://’
然后看系統(tǒng)的資源,erl 的進(jìn)程內(nèi)存比較大,大概暫用了 300 多 M 是我這邊 celery 的配置有問題么?
問題解答
回答1:已經(jīng)解決了,升級了 rabbitmq 到 3.3 以上版本就可以了。 之前用的是 rabbitmq 3.1 的版本,然后 celery 是 3.1 的版本
真正解決問題的方法是,在task里增加一個ignore_result=True屬性,如下@app.task(ignore_result=True)
