(1)非同步任務( async task ):傳送郵件、或者檔案上傳, 影象處理等等一些比較耗時的操作
(2)定時任務( crontab ):在特定時間執行的任務
(1) 建立乙個 celery 例項
(3) 應用程式呼叫非同步任務
(4)儲存結果 (發布的任務需要return才會有結果,否則為空)
1、test.py
from celery importcelery
test
', broker="
redis:")
deftest_task(n):
print(f'
test: ')
returnnif
__name__ == '
__main__':
##test_task.delay('==== ttttt1 *****')
#延遲30秒執行
==== ttttt3 *****
',), countdown=30)
python test.py127.0.0.1:6379[1]> keys *#檢視broker中介軟體redis,有
celery, 型別是列表,存放的是
當前正在佇列中的 task,等待被 worker 所接收
1) "_kombu.binding.default"
2) "_kombu.binding.celery"
3) "celery"
3、啟動worker:
Django 使用celery處理非同步任務
略過 pip install celery 3.1.18celery4不再支援windows,所以在windows環境下使用請選擇celery 3.1.18 celery需要一種解決訊息的傳送和接受的方式,我們把這種用來儲存訊息的的中間裝置叫做message broker,也可叫做訊息中間人。作為中...
celery 非同步任務佇列
celery是基於python開發的分布式任務佇列。它可以讓任務的執行完全脫離主程式,甚至可以被分配到其他主機上執行。我們通常使用它來實現非同步任務 async task 和定時任務 crontab 它的架構組成如下圖 celery 4.x以上版本不安裝該模組,新增任務時會報錯 使用celery包含...
使用celery執行非同步定時任務
建立乙個名叫tasks.py的檔案,裡邊單獨存放定時任務函式 from datetime import timedelta from django.utils import timezone from polls.models import user defcheck inactive user 檢...