django中使用celery 一

2021-08-08 13:32:27 字數 1835 閱讀 4472

建立django專案celery_demo, 建立應用demo:

在celery_demo模組中建立celery.py模組, 檔案目錄為:

celery.py模組內容為:

from celery import celery

from django.conf import settings

import os

# 為celery設定環境變數

os.environ.setdefault('django_settings_module', 'celery_demo.settings')

# 建立應用

# 配置應用

# 配置broker, 這裡我們用redis作為broker

broker_url='redis:',

)

在應用demo引用建立tasks.py模組, 檔案目錄為: 

我們在檔案內建立乙個任務函式my_task:

import time

# 此函式為任務函式

def my_task():

print("任務開始執行....")

time.sleep(5)

print("任務執行結束....")

在views.py模組中建立檢視index:

# 將my_task任務加入到celery佇列中

# 如果my_task函式有引數,可通過delay()傳遞

# 例如 my_task(a, b), my_task.delay(10, 20)

在celey_demo/settings.py配置檢視路由:

from django.conf.urls import url

from django.contrib import admin

from demo.views import index

urlpatterns = [

url(r'^admin/', admin.site.urls),

url(r'^$', index),

]

建立worker等待處理celery佇列中任務, 在終端執行命令:

啟動django測試伺服器:

django中使用celery及gevent

celery是分布式非同步任務佇列,通過在django中整合celery任務,可實現工作流的定製 非同步執行i o工作量大的任務 定時任務。下面的例子,給出了定時任務的實現過程。原始碼 django admin startproject mysite在mysite下建立poll應用 2 建立後mys...

在django中使用 配置 celery

通俗來說,celery是python的乙個非同步佇列伺服器。在我們日常web應用中,當請求乙個後端介面的時候,都是等待該介面的業務完成後再返回。那麼如果這個介面執行的任務很漫長,就可能造成服務阻塞甚至http請求超時。那麼如果web介面要執行很長時間的任務,又要保證即時給前端響應,就可以將很耗時間的...

在django中使用celery非同步任務和定時任務

在django中使用 celery django版本 1.9.8 pip install django celery redis要指定版本,預設的 3.x版本有問題 pip uninstall redis pip install redis 2.10.6 建立django的 並配置執行起來,作為 c...