网站建设的栏目内容是,wordpress 文件不刷新,个人网站和企业网站,开发一个手游需要多少钱目录
一、实验
1.Django使用Celery完成异步和定时任务
二、问题
1. 如何查看Django版本 一、实验
1.Django使用Celery完成异步和定时任务
(1)安装Django (2)新建Django项目 (3)初始框架 (4)urls.py引用视图views
from django.contrib import admin
from django.urls imp…目录
一、实验
1.Django使用Celery完成异步和定时任务
二、问题
1. 如何查看Django版本 一、实验
1.Django使用Celery完成异步和定时任务
(1)安装Django (2)新建Django项目 (3)初始框架 (4)urls.py引用视图views
from django.contrib import admin
from django.urls import path
from app01 import viewsurlpatterns [path(admin/, admin.site.urls),path(test/,views.test)
] (5)编写view
from django.shortcuts import render,HttpResponse# Create your views here.
def test(request):return HttpResponse(OK) (6)点击运行 (7)查看运行结果点击链接 (8)显示OK
http://127.0.0.1:8000/test/ (9)新建消费者目录mycelery (10)tasks.py文件定义异步或定时任务 (11)编写配置文件config.py
#消息中间件
broker_url redis://127.0.0.1:6379/15
#异步存储地方
result_backend redis://127.0.0.1:6379/14 (12)main.py将配置文件解耦
# -*- coding: utf-8 -*-
# 主程序
import os
import celery as celery
from celery import Celery
import eventlet
# 创建celery实例对象
app Celery(djcelery)
# 把celery和django进行组合识别和加载django的配置文件
os.environ.setdefault(DJANGO_SETTINGS_MODULE, celeryPros.settings.dev)
# 通过app对象加载配置
app.config_from_object(mycelery.config)
# 加载任务
# 参数必须必须是一个列表里面的每一个任务都是任务的路径名称
# app.autodiscover_tasks([任务1,任务2])
app.autodiscover_tasks([mycelery.sms,]) (13)tasks文件
# -*- coding: utf-8 -*-
# celery的任务必须写在tasks.py的文件中别的文件名称不识别!!!
from mycelery.main import app
import time
import logging
log logging.getLogger(django)
app.task # name表示设置任务的名称如果不填写则默认使用函数名做为任务名
def send_sms(mobile):发送短信print(向手机号%s发送短信成功!%mobile)time.sleep(5)return send_sms OK
app.task # name表示设置任务的名称如果不填写则默认使用函数名做为任务名
def send_sms2(mobile):print(向手机号%s发送短信成功2!%mobile)time.sleep(5)return send_sms2 OK (14)view视图添加异步代码
from django.shortcuts import render,HttpResponse
# Create your views here.
from mycelery.sms.tasks import send_sms,send_sms2
def test(request):#异步任务# 1. 声明一个和celery一模一样的任务函数但是我们可以导包来解决# send_sms.delay(139XXXXXXXX)# send_sms2.delay(135XXXXXXXX)# send_sms.delay() 如果调用的任务函数没有参数则不需要填写任何内容 (15)浏览器刷新或回车进行观察 (16)消费者一方配置完成 (17) mycelery根目录 (18)已启动消费
PS D:\soft\Djcelery celery --appmycelery.main worker -n node1 -l INFO -P eventlet(19)查看异步消息 (20)注释异步任务代码 (21)添加定时任务代码 #定时任务from datetime import datetime,timedeltactime datetime.now()# 默认用utc时间utc_ctime datetime.utcfromtimestamp(ctime.timestamp())time_delay timedelta(seconds10)task_time utc_ctime time_delayresult send_sms.apply_async([136XXXXXXXX, ], etatask_time)print(result.id) (22)浏览器再次刷新或回车进行观察 (23)查看定时消息 (24)查看RUN结果 (25)完整项目架构 (26)查看Redis可视化界面 二、问题
1. 如何查看Django版本
1方式一
indows系统下在cmd命令窗口中输入python进入Python解释器
Linux系统下 直接使用终端调用Python解释器接下来输入import djangoprint django.VERSION # Python2的格式printdjango.VERSION) # Python3的格式 或者输入django.get_version() # 获取当前djiango版本号2方式二
在IDE内 的terminal 内输入python -m django --versiondjango-admin --version这两个命令 一样可以查询到。注意通常在项目的目录下查询。这种方式适合项目已经建立虚拟Python环境也已经配置好。Django不是全局安装的时候。3方式三
Windows系统下在cmd命令窗口中输入python进入Python解释器Linux系统下直接使用终端调用Python解释器直接输入
python -m django --versiondjango-admin --version注意这里django是全局安装。
4方法四
在项目目录下的lib文件夹内的site-packpage文件夹内直接可以看到Django版本。