celery 2 非同步任務簡單使用

2022-05-08 23:09:09 字數 782 閱讀 8756

(1)非同步任務( async task ):傳送郵件、或者檔案上傳, 影象處理等等一些比較耗時的操作

(2)定時任務( crontab ):在特定時間執行的任務

(1) 建立乙個 celery 例項

(3) 應用程式呼叫非同步任務

(4)儲存結果 (發布的任務需要return才會有結果,否則為空)

1、test.py

from celery import

celery

test

', broker="

redis:")

deftest_task(n):

print(f'

test: ')

returnnif

__name__ == '

__main__':

##test_task.delay('==== ttttt1 *****')

#延遲30秒執行

==== ttttt3 *****

',), countdown=30)

python test.py

#檢視broker中介軟體redis,有celery, 型別是列表,存放的是當前正在佇列中的 task,等待被 worker 所接收

127.0.0.1:6379[1]> keys *

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 檢...