Celery - 分布式任务队列

简介:

  Celery是一个简单,灵活且可靠的分布式系统,可以处理大量消息,同时为操作提供维护该系统所需的工具。这是一个任务队列,着重于实时处理,同时还支持任务调度。

  • 消息队列

    • 异步任务

    • 定时任务

  • 需要了解的知识

    • 选择并安装消息容器(载体)

    • 安装Celery并创建第一个任务

    • 开启工作进程并调用任务

    • 记录工作状态和返回的结果

简单使用: 

  • 安装
    • pip install -U "celery[redis]"   使用redis当作载体
    • pip install  celery               安装celery
  • 配置:
    • settings.py中
1 # Celery settings
2 CELERY_BROKER_URL = 'redis://localhost:6379/1'
 1 CACHES = {
2 "default": {
3 "BACKEND": "django_redis.cache.RedisCache",
4 "LOCATION": "redis://127.0.0.1:6379/1",
5 "TIMEOUT": 60 * 60 * 24,
6 "OPTIONS": {
7 "CLIENT_CLASS": "django_redis.client.DefaultClient",
8 }
9 }
10 }
  • 创建

    • 创建应用、任务doc/code/tasks.py
 from time import sleep
from celery import Celery # 参数('任务的名字',配置消息载体)
app = Celery("tasks", broker='redis://localhost:6379/1') # 用app作为装饰器为add函数定制任务
@app.task
def add(a, b):
sleep(5)
return a + b if __name__ == '__main__':
# add.delay表示异步计算add函数,返回计算结果的一个uuid标示
print(add.delay(4, 6))
  • 启动

    • 注意:启动时要在任务文件所在文件夹下输入命令
    • celery -A tasks worker --loglevel=info  [tasks:(工程)文件名;worker模式;loglevel:日志级别]

 Django中使用:

  • 安装:pip install django-celery-results
  • 迁移:

  

Admin

介绍:

  Django中默认集成了后台数据管理页面,通过简单的配置就可以实现模型后台的Web控制台。

  管理界面通常是给系统管理员使用的,用来完成数据的输入、删除、查询等工作

  如果没有集成或者使用第三方后台框架,可以在settings中的INSTALLED_APPS添加'django.contrib.admin'

使用

  • python manage.py  createsuperuser  终端此命令后回车,输入:用户名、邮箱、密码、确认密码
  • 127.0.0.1:8000/admin/                     浏览器输入此路由进入后台管理页面,输入用户名、密码

模型: 

  • django默认管理的模型有:用户、组
  • 在admin.py文件中注册admin.site.register(模型名)。添加自己的数据模型到后台管理中

定制 

  如果觉得默认的站点样式不能满足需求,则开发者可以通过继承Django定义的管理员数据模型,模版

  站点类来开发出个性化的管理员站点。只需要注册的时候添加自己的管理员类

  • 创建管理员:class StudentAdmin(admin.ModelAdmin):
  • 注册管理类:admin.site.register(Students.StudentAdmin)

Log级别

  • info

  • debug

  • warning:警告

  • error:    错误

  • critical:  严重错误,影响到系统框架代码的错误

django 之(六) --- Celery|Admin的更多相关文章

  1. Django App(六) Customing Admin Form

    这一篇主要是呼应第二篇时留下来的一个问题,就是如何自定义默认app admin下的Form  1.绑定数据实体 通过第二篇的努力,已经完成了数据实体到数据库的映射,可以将界面的更改保存到数据库,我们建 ...

  2. VS2019 开发Django(六)------Admin中图片上传

    导航:VS2019开发Django系列 该篇继续完善在Django的管理界面上传图片,因为LazyOrders小程序中菜单需要展示图片,而不是一个文本路径,所以我们还需要继续改造一下. 1)安装pil ...

  3. Django 中使用 Celery

    起步 在 <分布式任务队列Celery使用说明> 中介绍了在 Python 中使用 Celery 来实验异步任务和定时任务功能.本文介绍如何在 Django 中使用 Celery. 安装 ...

  4. Django中使用Celery

    一.前言 Celery是一个基于python开发的分布式任务队列,如果不了解请阅读笔者上一篇博文Celery入门与进阶,而做python WEB开发最为流行的框架莫属Django,但是Django的请 ...

  5. Django中使用Celery实现定时任务(用djcelery)

    一.引言 Django是python语言下的一个比较热门的Web框架,越来越多的企业和开发者使用Django实现自己的Web服务器.在Web服务器开发过程中,有时候我们不仅仅是要实现Web服务器端和用 ...

  6. Django之使用celery和NGINX生成静态页面实现性能优化

    性能优化原理: 当我们要给client浏览器返回一个页面时,我们需要去数据库查询数据并将数据和基本页面模板渲染形成页面返回给客户端,但如果每一个用户访问时都去查询一次首页的的数据时,当日访问量很大时那 ...

  7. Python—在Django中使用Celery

    一.Django中的请求 Django Web中从一个http请求发起,到获得响应返回html页面的流程大致如下: http请求发起 经过中间件 http handling(request解析) ur ...

  8. 7) 项目准备流程 和 django权限六表

    一.项目准备 1. 创建django项目 2. 创建数据库 —— init文件中声明mysql —— settings中配置数据库 import pymysql pymysql.install_as_ ...

  9. Django基础六之cookie和session

    Django基础六之cookie和session 目录 Django基础六之cookie和session 1. cookie和session介绍 1.1 cookie 简介 1.2 cookie的缺陷 ...

随机推荐

  1. js 同步 异步 宏任务 微任务 文章分享

    分享一篇 写的很好的 宏任务 微任务  同步异步的文章 文章原地址: https://juejin.im/post/59e85eebf265da430d571f89 这一次,彻底弄懂 JavaScri ...

  2. linux实操_shell自定义函数

    基本语法: #定义函数 function 函数名(){ 函数体 } #调用函数 函数名 参数1 参数2... 实例:计算两个数的和. 运行后

  3. 控制warning信息在控制台的显示

    在运行代码时,有时出现warning信息, 1.当你后台不需要warning信息的时候,可以直接把warning信息省略掉. 2.如果代码是循环,则会在控制台打印多次warning信息,这会使得war ...

  4. Django 数据库mysql到models的映射方法

    Django自动生成models 如果数据库表已经存在,执行命令,可以自动生成Models模型,实现models与数据表的映射 >>> python manage.py inspec ...

  5. 2019ICPC区域赛(银川)总结

    2019ICPC银川 作为第一次打区域赛的我,心情异常激动,加上学校给坐飞机(事实上赶飞机很痛苦). 热身赛很难受,oj上不去,写AC自动机输入没写好.. 现场赛,开场直觉倒着看,发现签到.然后看B, ...

  6. ITextSharp开源PDF处理库

    1:官方完整开源项目 http://sourceforge.net/projects/itextsharp/ 2:使用NUGET :> install-package itextsharp

  7. jQuery和原生JS的对比

    原生JS的缺点: 不能添加多个入口函数(window.onload),如果添加了多个,后面的会把前面的覆盖掉 原生js的api名字太长,难以书写,不易记住 原生js有的代码冗余 原生js中的属性或者方 ...

  8. 001_FreeRTOS中断配置

    (一)优先级看:022_STM32中断优先级分组解析 (二)FreeRTOS的中断配置中没有处理亚优先级(响应优先级)的情况,所以只能配置成组4,16个都为抢占优先级 (三)此宏用来设置 MCU 使用 ...

  9. CF811E Vladik and Entertaining Flags

    嘟嘟嘟 看题目这个架势,就知道要线段树,又看到维护联通块,那就得并查集. 所以,线段树维护并查集. 然而如果没想明白具体怎么写,就会gg的很惨-- 首先都容易想到维护区间联通块个数和区间端点两列的点, ...

  10. [linux]sudo 出现unable to resolve host 解决方法

    Ubuntu环境, 假设这台机器名字(hostname)叫abc, 每次执行sudo 就出现这个警告讯息:sudo: unable to resolve host abc虽然sudo 还是可以正常执行 ...