![](/img/trans.png)
[英]How to deploy a Django application with the Celery task on Heroku Free plan
[英]How to Abort Celery Task upon deploy to Heroku
當我的新版django應用程序部署到heroku時,工作人員被迫重新啟動。 我有一些長期運行的任務,應該在被殺之前進行一些清理。
我已經嘗試注冊一個似乎不會被調用的worker_shutdown鈎子。
我還嘗試了Notify celery task of worker shutdown中的答案,但我不清楚如何在此上下文中中止給定任務,因為調用celery.task.control.active()會拋出異常(celery不再運行)。
謝謝你的幫助。
如果您控制部署,也許您可以運行一個腳本,將Control.broadcast執行到您可以預先注冊的自定義命令,並且只有在收到所需的回復后(您必須實現該邏輯),您才能繼續部署(或者引發TimeoutException)?
此外,芹菜已經有一個預定義的關閉命令 ,我猜你可能會在你的實例或工人的子類中重載。 命令具有傳遞Panel實例的優點,該實例允許您訪問使用者 。 這應該會在那里暴露很多控制權......
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.