celery异步执行任务在Django中的应用实例
生活随笔
收集整理的這篇文章主要介紹了
celery异步执行任务在Django中的应用实例
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. 創建django項目celery_demo, 創建應用demo:
django-admin startproject celery_demo python manage.py startapp demo??2.在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')# 創建應用 app = Celery("demo") # 配置應用 app.conf.update(# 配置broker, 這里我們用redis作為brokerBROKER_URL='redis://:127.0.0.1:6379/1', ) # 設置app自動加載任務 # 從已經安裝的app中查找任務 app.autodiscover_tasks(settings.INSTALLED_APPS)??3.在應用demo引用創建tasks.py模塊, 文件目錄為:?
??4.我們在文件內創建一個任務函數my_task:
from celery_demo.celery import app import time# 加上app對象的task裝飾器 # 此函數為任務函數 @app.task def my_task():print("任務開始執行....")time.sleep(5)print("任務執行結束....")??在views.py模塊中創建視圖index:
from django.shortcuts import render from django.http import HttpResponse from .tasks import my_taskdef index(request): # 將my_task任務加入到celery隊列中 # 如果my_task函數有參數,可通過delay()傳遞 # 例如 my_task(a, b), my_task.delay(10, 20)my_task.delay()return HttpResponse("<h1>服務器返回響應內容!</h1>")??在celey_demo/settings.py配置視圖路由:
from django.conf.urls import url from django.contrib import admin from demo.views import indexurlpatterns = [url(r'^admin/', admin.site.urls),url(r'^$', index), ]??5.創建worker等待處理celery隊列中任務, 在終端執行命令:
celery -A celery_demo worker -l info?
?6.啟動django測試服務器:
python manage.py runserver總結
以上是生活随笔為你收集整理的celery异步执行任务在Django中的应用实例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux环境变量配置的三个方法--/e
- 下一篇: java访问数据库方式_java数据库访