gpt4 book ai didi

Django中使用celery完成异步任务的示例代码

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 26 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章Django中使用celery完成异步任务的示例代码由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

本文主要介绍如何在django中用celery完成异步任务,web项目中为了提高用户体验可以对一些耗时操作放到异步队列中去执行,例如激活邮件,后台计算操作等等 当前项目环境为: django==1.11.8 celery==3.1.25 redis==2.10.6 pip==9.0.1 python3==3.5.2 django-celery==3.1.17 。

一,创建Django项目及celery配置 。

1,创建Django项目 。

1>打开终端输入:django-admin startproject TestCelery 创建django项目('TestCelery'是项目名称) 。

2>进行TestCelery在终端输入指令:django-admin startapp testcelery 创建应用('testcelery为应用名称') 。

2, 为celery设置环境变量 。

1>项目中在TestCelery中创建celery.py文件(与setting.py同级)输入以下内容:          。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
from celery import Celery
from django.conf import settings
import os
 
# 为celery设置环境变量
os.environ.setdefault( 'DJANGO_SETTINGS_MODULE' , 'TestCelery.settings' )
 
# 创建应用
app = Celery( 'testcelery' )
 
# 酸配置应用
app.conf.update(
  
   # 本地Redis服务器
   BROKER_URL = 'redis://127.0.0.1:6379/2' ,
)
 
app.autodiscover_tasks(settings.INSTALLED_APPS)

2>当前项目目录如下图所示:

                                  。

二,创建任务tasks,编写视图View及urls 。

1, 在testcelery应用中新建tasks.py文件,并写入要进行处理的任务:          。

?
1
2
3
4
5
6
7
8
9
10
from TestCelery.celery import app
from time import sleep
@app .task
def start_running(nums):
   print ( '***>%s<***' % nums)
   print ( '--->>开始执行任务<<---' )
   for i in range ( 10 ):
     print ( '>>' * (i + 1 ))
     sleep( 1 )
   print ( '>---任务结束---<' )

2,编写view视图,并写入调用client的方法 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
from django.views import View
from django.http import HttpResponse
from .tasks import start_running
from time import sleep
# Create your views here.
 
class IdexView(View):
   def get( self , request):
     print ( '>=====开始发送请求=====<' )
     for i in range ( 10 ):
       print ( '>>' ,end = '')
       sleep( 0.1 )
 
     start_running.delay( '》》》》》我是传送过来的《《《《《' )
     return HttpResponse( '<h2> 请求已发送 </h2>' )

3,编写testcelery应用的usrls 。

?
1
2
3
4
5
from django.conf.urls import url
from .views import *
urlpatterns = [
   url(r '^$' , IdexView.as_view()),
]

4,当前项目目录如下图所示:

Django中使用celery完成异步任务的示例代码

三,运行项目,开启worker 。

1, 运行项目在当前项目下输入启动服务指令:python manager.py runserver,出现如下图所示即代表运行成功:

Django中使用celery完成异步任务的示例代码

2,开启worker另在当前项目下另打开一个终端,输入指令: celery -A TestCelery worker --loglevel=DEBUG,启动后如下如示:

Django中使用celery完成异步任务的示例代码

3,调用任务 。

1>打开浏览器,输入http://127.0.0.1:8000/send/  进行访问 。

Django中使用celery完成异步任务的示例代码

2> woker监听到任务请求时,就会执行耗时任务,如下图所示:

Django中使用celery完成异步任务的示例代码

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我.

原文链接:https://my.oschina.net/Kuture/blog/1611371 。

最后此篇关于Django中使用celery完成异步任务的示例代码的文章就讲到这里了,如果你想了解更多关于Django中使用celery完成异步任务的示例代码的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com