在處理 Python 非同步作業或排程作業的時候,通常會使用 Celery , 但預設啟動 Celery 是透過下列的方式:
celery -A proj worker -l info
如果沒有掛在 Screen 裡或是透過其它方式跑到背景,不小心關掉 console, celery 就會停止運作了,所以必須要讓 Celery Daemon 化,也不會太複雜,以下說明步驟:
- 到 Github 上把 Celeryd 的 script 下載下來,放到
/etc/init.d/celeryd
。 - 如果 Project 有使用到環境變數,而環境變數又剛好寫在
.bashrc
裡,記得在 celeryd 的檔案裡加一行source ~/.bashrc
避免 Celery 啟動的時候,找不到相關的環境變數。 - 接著把設定檔案放到
/etc/default/celeryd
.
`
1 | # Names of nodes to start most will only start one node: |
如果是透過 Root 權限來執行,必須要 export C_FORCE_ROOT="true"
,不然權限不合 Celery 也不會報錯。
設定好以後,可以透過 service celeryd start
來啟動 celery 或是 service celeryd stop
來停止。