建立django專案celery_demo, 建立應用demo:
在celery_demo模組中建立celery.py模組, 檔案目錄為:
celery.py模組內容為:
from celery import celery在應用demo引用建立tasks.py模組, 檔案目錄為:from django.conf import settings
import os
# 為celery設定環境變數
os.environ.setdefault('django_settings_module', 'celery_demo.settings')
# 建立應用
# 配置應用
# 配置broker, 這裡我們用redis作為broker
broker_url='redis:',
)
我們在檔案內建立乙個任務函式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...