Celery執行異步任務之 立即異步執行和延遲異步執行和定時異步執行


一、Celery執行異步任務

1、包架構封裝

project
   ├── celery_task # celery包
   │   ├── __init__.py # 包文件
   │   ├── celery.py   # celery連接和配置相關文件,且名字必須交celery.py
   │   └── tasks.py    # 所有任務函數
   ├── add_task.py # 添加任務
   └── get_result.py   # 獲取結果

2、建任務、啟動任務

建任務、啟動celery 

 3、生成任務(在scripts中建add_task文件)

注意:該文件一定要獨立開celery 封裝的包。原因:比如celery有一個更新輪播圖緩存 的任務,django 項目是可以響應 前台或者后台用戶主動更新 輪播圖數據庫的數據,

         當用戶更新了數據庫數據,就可以執行一下代碼,通知celery可以去異步執行更新 輪播圖緩存的任務了。

01、直接調用 任務1 中的tasks文件中的test_task方法  (沒有走celery)

 結果:

 

02、celery的立即異步執行.delay表示 走celery異步):在add_task.py文件中

 

 

 03、celery異步執行后,獲取執行后的結果

 在scripts中建get_task_result文件

 

二、celery的延遲異步執行:在add_task.py文件中

結果:

 

 

 三、celery定時(周期)異步執行  :在celery.py文件中

 開兩個 Terminal  都cd 到scripts 

 然后一個執行命令:celery worker -A celery_task_1 -l info -P eventlet

另外一個命令:celery beat -A celery_task_1 -l info        (添加任務:自動添加任務,所以要啟動一個添加任務的服務)

結果:

 

 

 

 


免責聲明!

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



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