在windows環境利用celery實現簡單的任務隊列

1、背景python

  最近因項目須要,學習任務隊列Celery的用法;web

2、測試使用環境:redis

 1.Windows7 x64django

 2.Python == 3.7.5flask

 3.celery == 4.3.0windows

 4.redis =3.3.11服務器

 5.eventlet==0.25.1 ==> pip install eventlet (windows環境必須安裝)app

 6.IDE爲pycharm框架

3、關於celery的安裝和卸載處理
 
pip install celery #安裝
函數

  pip install celery == 3.1.25 #指定安裝版本

  pip uninstall celery #卸載

4、Celery分爲3個部分

 1.worker部分負責任務的處理,即工做進程(個人理解工做進程就是你寫的python代碼,固然還包括python調用系統工具功能)

 2.broker部分負責任務消息的分發以及任務結果的存儲,這部分任務主要由中間數據存儲系統完成,好比消息隊列服務器RabbitMQ、redis、

 3.Celery主類,進行任務最開始的指派與執行控制,他能夠是單獨的python腳本,也能夠和其餘程序結合,應用到django或者flask等web框架裏面以及你能想到的任何應用

5、上代碼:

 1.建立Celery實例tasks.py:

# -*- coding: utf-8 -*- 

# 使用celery
import time
from celery import Celery
import redis

# 建立一個Celery類的實例對象
app = Celery('celery_tasks.tasks', broker='redis://:topsky@127.0.0.1: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)

  

 

 6、執行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環境下出現

相關文章
相關標籤/搜索