我沒有芹菜的經驗,所以我正在研究它,如果我的用例可以在芹菜解決。如何重置芹菜的時間限制任務
客戶端將向Celery提交一份工作,該工作將在CeleryTask中執行。然後,客戶必須每隔30秒發送一次Keepalive以保持這項工作的活躍。一旦工作沒有被保持信息刷新,工作將被取消。
我能想到的兩種解決方案:
創建將有30秒的硬時限每個作業任務。當客戶端發送Keepalive時,路由器會發送消息給相關的工作人員重設硬限制。
每個工作任務都沒有時間限制。對於每個工作任務,都會有另一個特殊的看門狗任務啓動。看門狗任務將延遲30秒啓動。如果新的Keepalive從客戶端到達,則看門狗任務將被取消並重新創建。再延遲30秒。如果看門狗被執行,它將終止作業任務,從而將其從系統中消除。
1.很簡單,但我不知道如何重置任務時間限制。解決方案2似乎更正確,但恐怕會有各種競爭條件。看門狗任務應該可能在單獨的隊列中運行,只保留給看門狗。
這是怎麼回事?即使我的一個解決方案或其他。