我遇到了一個用例,我想控制芹菜工作人員如何以及何時從rabbitmq處理任務以進行處理。離職將與芹菜背景下發生的外部事件同步,但我擔心芹菜是否給我任何靈活性來控制任務的出隊?我試圖調查及以下幾種可能性:從基於外部事件(事件隊列)的隊列中消費
利用
basic.get
代替basic.consume
,其中basic.get
基於外部事件觸發。但是,我看到芹菜默認爲basic.consume
(推)語義。我可以在不直接修改內核的情況下重寫此行爲嗎?自定義遠程控制外部事件觸發時的工作人員。但是,從文檔來看,我不太清楚遠程控制命令如何幫助我控制任務的出隊。
我非常想繼續使用芹菜,並可能遠離在AMQP上編寫自定義隊列處理解決方案。
感謝您的意見。遙控命令的確看起來像是一個合理的選擇。但是,看起來像工作人員仍然會使用'prefetch_count> 1'來執行任務,這種做法會打敗我的目的。有沒有辦法通過'prefetch_count = 1'來啓用這些消費者?具體來說,我想要a)添加使用者b)從指定的隊列中取出單個任務c)禁用該隊列的使用者,直到進一步發生外部事件 – 2013-05-04 17:20:41
爲工作者配置預取計數CELERYD_PREFETCH_MULTIPLIER = 1 – mher 2013-05-05 09:46:13