Celery多任務結構


視圖結構

pro_cel
    ├── celery_task# celery相關文件夾
    │   ├── celery.py   # celery連接和配置相關文件,必須叫這個名字
    │   └── tasks1.py    #  所有任務函數,如用戶相關
    │    └── tasks2.py    #  所有任務函數,如訂單相關
    ├── check_result.py # 檢查結果
    └── send_task.py    # 觸發任務

celery.py 配置信息

 
        
# 必須叫celery,生成celery對象
from celery import Celery

# 下面是配置信息,這里使用redis為列

# 處理結果
backend = 'redis://:lmdxxxx@139.xxx.xxx.42:6380/7'
# 中間人
broker = 'redis://:lmdxxxx@139.xxx.xxx.42:6380/8'
APP = Celery('test', broker=broker, backend=backend,
             # 包含一下倆個任務文件,去相應的py文件中找任務,對多個任務做分類
             include=[
                 'celery_task.order_task',
                 'celery_task.user_task',
             ])

celery配置中 include是多任務的時候celery會自己去里面找任務去執行

order_task.py 訂單相關的任務

# 訂單相關
from celery_task.celery import APP


@APP.task
def order_add(x, y):
    import time
    time.sleep(1)
    return '訂單相關的:%s' % (x + y)

 user_task.py 用戶相關的任務

# 用戶相關
from celery_task.celery import APP


@APP.task
def user_add(x, y):
    import time
    time.sleep(2)
    return '用戶相關的:%s' % (x + y)

 add_task.py 提交任務

from celery_task.order_task import order_add
from celery_task.user_task import user_add

order = order_add.delay(5, 6)
user = user_add.delay(10, 0)
print(order)
print(user)

 

啟動worker

linux命令:celery worker -A celery_task -l info

win命令:celery worker -A celery_task -l info -P eventlet

多任務直接啟動 celery_task 這個包就行了,因為里面必須固定寫celery

注:celery_task是自己創建包的那個名字

 

獲取結果同上一篇文章

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM