Celery的底層原理(透徹一些)?
celery是基於python實現的一個異步任務的調度工具,同時還是一個任務隊列,主要用於處理耗時的任務。架構如下:
celery架構由三個模塊組成:消息中間件(message broker),任務執行單元(worker)和任務執行結果存儲(task result store)組成。 消息中間件(Broker): 消息中間人,是任務調度隊列,是一個獨立的服務,是一個生產者消費者模式,生產者把任務放入隊列中,消費者(worker)從任務隊列中取出任務執行,任務的執行可以按照順序依次執行也可以按照計划時間進行。但是Broker本身不提供隊列服務,所以要集成第三方隊列,推薦使用RatbbitMQ或Redis. 任務執行單元(worker):即執行任務的程序,可以有多個並發。它實時監控消息隊列,獲取隊列中調度的任務,並執行它。 任務執行結果存儲(task result store):由於任務的執行同主程序分開,如果主程序想獲取任務執行的結果,就必須通過中間件存儲。同消息中間人一樣,存儲也可以使用RabbitMQ、Redis;另外,假如不需要保存執行的結果也可以不配置這個模塊。
更對內容參考: http://docs.celeryproject.org/en/latest/getting-started/introduction.html
|