簡體   English   中英

芹菜工人沒有消耗足夠的任務

[英]Celery workers not consuming enough tasks

我和Celery有一個奇怪的問題。

我使用RabbitMQ作為消息代理和結果后端。

任務通過pickle序列化,但它們只獲取數據庫中文件的id。 他們獲取它,對它做一些工作並將結果寫回數據庫。 我只是將id存儲在結果后端。

我使用一個組來提供任務,並且不從其中運行任何子任務。

我有一個並發= 8的工人(prefork)

如果我啟動任務,則所有8個進程都在工作(100%cpu使用率)。

第一個任務完成后,奇怪的行為就開始了。 該過程不會開始新任務。 任務get初始化(我使用CELERYD_MAX_TASKS_PER_CHILD = 1)但是不會調用run方法。

所以問題是,並非所有流程都在運行。

嘗試了許多配置設置但沒有改變此行為。

你有什么主意嗎?

它不是數據庫等。本地運行消息代理和數據庫。 還看了一下有花的工人,它說大部分時間大約有4個過程都是活躍的。 其他任務保留,但不啟動。

希望你能幫助我!

終於想通了:

這只是我必須放置然后啟動工人的一個選項。

使用-Ofair選項啟動worker就可以了!

請參閱: http//docs.celeryproject.org/en/latest/userguide/optimizing.html#prefork-pool-prefetch-settings

謝謝你的幫助 :)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM