溫馨提示×

Django中如何使用Celery實現(xiàn)異步任務(wù)處理

小億
87
2024-04-02 14:31:08
欄目: 編程語言

在Django中使用Celery實現(xiàn)異步任務(wù)處理需要按照以下步驟來進行:

  1. 安裝Celery和Redis:
pip install celery
pip install redis
  1. 配置Celery:

在Django項目的settings.py文件中添加如下配置:

# settings.py

# Celery配置
CELERY_BROKER_URL = 'redis://localhost:6379/0'
CELERY_RESULT_BACKEND = 'redis://localhost:6379/0'

# 導(dǎo)入Celery應(yīng)用
from celery import Celery

# 創(chuàng)建Celery應(yīng)用
app = Celery('myapp')
app.config_from_object('django.conf:settings', namespace='CELERY')
app.autodiscover_tasks()
  1. 創(chuàng)建Celery任務(wù):

在Django應(yīng)用中創(chuàng)建tasks.py文件,并定義需要異步處理的任務(wù):

# tasks.py

from celery import shared_task

@shared_task
def my_task(param1, param2):
    # 任務(wù)邏輯
    result = param1 + param2
    return result
  1. 調(diào)用Celery任務(wù):

在Django的其他視圖或函數(shù)中調(diào)用Celery任務(wù):

from myapp.tasks import my_task

result = my_task.delay(1, 2)
  1. 啟動Celery Worker:

在項目根目錄下運行以下命令啟動Celery Worker:

celery -A myproject worker --loglevel=info

這樣就可以在Django中使用Celery實現(xiàn)異步任務(wù)處理了。Celery會將任務(wù)放入消息隊列中,然后Worker會異步處理這些任務(wù)并返回結(jié)果。

0