說明:
celery 運行了大概一周左右的時間,一直在處理task, 大概每秒3-4個左右,不是很大,跑著跑著就不執行了,佇列堆積了大量的訊息,通過flower去看worker狀態,已經離線,查看了下日志:

worker和mq連接已經段開了,就去查原因,打了下work的運行資訊,發現主行程一直卡在這

就去查了原始碼,原始碼大致是這樣

引發該問題猜測:
1. 是否和環境有關系,該問題復現了倆次,記憶體不足,但是低記憶體情況下,重啟worker還是會恢復正常
2. 主行程卡死,接收msg一直接收不到?
有沒有大佬遇到過該問題,尋求幫助,或者幫忙給點思路

注冊任務說明:
處理訊息傳遞過來的引數,做一些字串拼接占位處理,然后批量入庫,最后還會send_task異步到另一個佇列去處理
uj5u.com熱心網友回復:
補充worker日志檔案圖片:
查了這個錯誤,應該是mq主動段掉的這個鏈接,但是mq為什么會主動斷掉,看原始碼說佇列洗掉,佇列洗掉的后celery應該會根據組態檔自行創建,我試了幾次確實會創建,但是有一次確實失敗了,錯誤一模一樣,但是考慮到生產環境,還有測驗同事反饋,應該沒人去洗掉佇列,繼續排查分析。。。。
uj5u.com熱心網友回復:
最近太忙沒更新,接下來的研究方向去了解worker的重試機制,搞明白它為啥不去重試鏈接了轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/36749.html
上一篇:求大佬相助!!!
下一篇:小菜雞的期末大作業
