windows環境中利用celery實現簡單任務佇列過程解析
這篇文章主要介紹了windows環境中利用celery實現簡單任務佇列過程解析,文中通過示例程式碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
一、背景
最近因專案需要,學習任務佇列Celery的用法;
二、測試使用環境:
1.Windows7 x64
2.Python == 3.7.5
3.celery == 4.3.0
4.redis =3.3.11
5.eventlet==0.25.1 ==> pip install eventlet (windows環境必須安裝)
6.IDE為pycharm
三、關於celery的安裝和解除安裝處理
pip install celery #安裝
pip install celery == 3.1.25 #指定安裝版本
pip uninstall celery #解除安裝
四、Celery分為3個部分
1.worker部分負責任務的處理,即工作程序(我的理解工作程序就是你寫的python程式碼,當然還包括python呼叫系統工具功能)
2.broker部分負責任務訊息的分發以及任務結果的儲存,這部分任務主要由中間資料儲存系統完成,比如訊息佇列伺服器RabbitMQ、redis、
3.Celery主類,進行任務最開始的指派與執行控制,他可以是單獨的python指令碼,也可以和其他程式結合,應用到django或者flask等web框架裡面以及你能想到的任何應用
五、上程式碼:
1.建立Celery例項tasks.py:
# -*- coding: utf-8 -*- # 使用celery import time from celery import Celery import redis # 建立一個Celery類的例項物件 app = Celery('celery_tasks.tasks',broker='redis://:[email protected]:6379/1') @app.task def add(a,b): count = a + b print('任務函式正在執行....') time.sleep(5) return count
2.呼叫celery任務程式碼:
from celery_tasks.tasks import add def notity(a,b): # result = a + b result = add.delay(a,b) return result if __name__ == '__main__': result = notity(3,5) print(result)
六、執行worker
1.建立一個worker,等待處理佇列中的任務,開啟Windows PowerShell終端以管理員身份執行,cd到E:\SvnCode\myCode目錄中,
2.執行命令: celery -A celery_tasks.tasks worker -l info -P eventlet
引數解釋,命令中-A引數表示的是Celery APP的名稱celery_tasks,這個例項中指的就是tasks.py,後面的tasks就是APP的名稱,worker是一個執行任務角色,後面的loglevel=info記錄日誌型別預設是info,這個命令啟動了一個 worker,用來執行程式中add這個加法任務(task),-P eventlet是防止在windows環境下出現
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。