celery

1,生成worker並執行任務
celery worker -A s1 -l info -n workerA.%h celery worker -A s1 -l info -n workerB.%h
若是想要執行指定的任務 須要:
celery -A tasks worker -l info -n workerA.%h -Q for_task_A

celery -A tasks worker -l info -n workerB.%h -Q for_task_B
通過測試,若是不指定任務,那麼將分配隨機的worker去執行queue任務隊列中的任務
2,celery 架構
Celery Beat:任務調度器,Beat進程會讀取配置文件的內容,週期性地將配置中到期須要執行的任務發送給任務隊列。
Celery Worker:執行任務的消費者,一般會在多臺服務器運行多個消費者來提升執行效率。
Broker:消息代理,或者叫做消息中間件,接受任務生產者發送過來的任務消息,存進隊列再按序分發給任務消費方(一般是消息隊列或者數據庫)。
Producer:調用了Celery提供的API、函數或者裝飾器而產生任務並交給任務隊列處理的都是任務生產者。
Result Backend:任務處理完後保存狀態信息和結果,以供查詢。Celery默認已支持Redis、RabbitMQ、MongoDB、Django ORM、SQLAlchemy等方式。
3,celery命令列表
Options(選項):
  -A APP, --app=APP     app instance to use (e.g. module.attr_name)-本次操做使用的App實例。
  -b BROKER, --broker=BROKER    -消息代理(服務器),用於傳遞數據的URL。
                        url to broker.  default is 'amqp://guest@localhost//'
  --loader=LOADER       name of custom loader class to use. - 自定義載入類的名稱。
  --config=CONFIG       Name of the configuration module-配置模塊的名稱。
  --workdir=WORKING_DIRECTORY- 工做目錄。
                        Optional directory to change to after detaching.
  -C, --no-color       -非彩色顯示。
  -q, --quiet              -靜默執行。
  --version             show program's version number and exit-顯示版本號。
  -h, --help            show this help message and exit -顯示本幫助。

 

 關於一些坑!!!https://www.jianshu.com/p/807efde55d81數據庫

 

cel.conf.imports = ['celery_task.s1']
相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息