1. 程式人生 > 程式設計 >windows環境中利用celery實現簡單任務佇列過程解析

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環境下出現

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。