任務管理:

說明: 如上為運行任務后的標準輸出,transport為消息代理,concurrency為默認進程池進程數(shù),當所有子進程處于忙碌狀態(tài)時必須等待空閑子進程處理,如果是IO密集型可嘗試使用Eventlet/Gevent協(xié)程,具體可參考http://docs.jinkan.org/docs/celery/userguide/concurrency/index.html#concurrency,result為結果存儲,queue為所有的隊列以及交換機信息列表
參數(shù) | 含義 |
%p | 節(jié)點全名,如foo@bar.example.com |
%n | 只包含主機名,如foo |
%h | 包含域名的主機名,如bar.example.com |
%d | 只包含域名,如example.com |
%i | PRefork類型的進程索引,主進程為0,根據(jù)-n指定的名稱生成對應的從1開始累加的名稱,常用于用于為每個子進程創(chuàng)建唯一的日志文件 |
%I | Prefork類型的進程索引,主進程空,根據(jù)-n指定的名稱生成對應的從1開始累加的名稱,常用于用于為每個子進程創(chuàng)建唯一的日志文件 |
# 啟動節(jié)點
celery multi start notify -A work.app -c 4 -l info --pidfile=notify.pid --logfile=notify.log
# 關閉節(jié)點
celery multi stop notify -A work.app -c 4 -l info --pidfile=notify.pid --logfile=notify.log
celery multi stopwait notify -A work.app -c 4 -l info --pidfile=notify.pid --logfile=notify.log
celery multi kill notify -A work.app -c 4 -l info --pidfile=notify.pid --logfile=notify.log
# 重啟節(jié)點
celery multi restart notify -A work.app -c 4 -l info --pidfile=notify.pid --logfile=notify.log
# 查看節(jié)點
celery multi names notify -A work.app -c 4 -l info --pidfile=notify.pid --logfile=notify.log
celery multi show notify -A work.app -c 4 -l info --pidfile=notify.pid --logfile=notify.log
說明: Celery提供了一個multi子名稱,可以很方便的管理Celery應用的啟動(notify表示應用的唯一標識,-A表示應用的入口文件,-c表示默認工作進程下將啟動的子進程數(shù),--pidfile表示進程文件,--logfile表示日志文件)/關閉(stop表示異步停止應用,stopwait表示同步等待停止應用,kill表示終止應用,但需要注意的是必須指定--pidfile和--logfile)/重啟(restart表示重啟應用,但需要注意的是默認multi并不記憶之前啟動參數(shù),所以需要和啟動參數(shù)一樣)
擴展: 如果想要跟蹤不同子進程的日志可直接在--pidfile和--logfile中使用上面的格式化參數(shù),如celery multi start notify -A work.app -c 4 -l info --pidfile=notify%I.pid --logfile=notify%I.log,則會在當前運行目錄下生成不同進程的進程ID以及日志文件,但是當你關閉和重啟的時候就不那么方便了~
任務調(diào)度:
celery beat --help
任務跟蹤:
celery result --help
celery -A work.app inspect --help
在線控制:
celery amqp --help
celery -A work.app control --help
在線節(jié)點:
celery -A work.app status
登錄樂搏學院官網(wǎng)http://www.learnbo.com/
或關注我們的官方微博微信,還有更多驚喜哦~

本文出自 “滿滿李 - 運維開發(fā)之路” 博客,請務必保留此出處http://xmdevops.blog.51cto.com/11144840/1889510