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. nginx中ngx_http_core_module模块

    http核⼼心模块指令:套接字相关的配置3.1 server{ }设置虚拟服务器器的配置Syntax: server { ... }Default: —Context: httpserver {lis ...

  2. 关键字local、global和内置函数【locals、globals】

    每个函数都有着自已的命名空间,叫做局部名字空间,它记录了函数的变量,包括函数的参数和局部定义的变量.每个模块拥有它自已的命名空间,叫做全局命名空间,它记录了模块的变量,包括函数.类.其它导入的模块.模 ...

  3. 【专题】Spring Boot 2.x 面试题

    1.Spring Boot.Spring MVC 和 Spring 有什么区别? SpringFramework 最重要的特征是依赖注入.所有 SpringModules 不是依赖注入就是 IOC 控 ...

  4. SIGAI机器学习第十集 线性判别分析

    讲授LDA基本思想,寻找最佳投影矩阵,PCA与LDA的比较,LDA的实际应用 前边讲的数据降维算法PCA.流行学习都是无监督学习,计算过程中没有利用样本的标签值.对于分类问题,我们要达到的目标是提取或 ...

  5. 爬虫----异步---高性能爬虫----aiohttp 和asycio 的使用

    前情提要: 首先膜拜loco大佬 肯定有人像我一样.不会异步,发一下. 一:性能比对 多进程,多线程,(这里不建议使用,太消耗性能) 进程池和线程池 (可以适当的使用) 单线程+异步协程   (推荐使 ...

  6. github 管理代码、笔记

    1.先注册github.com的账号官方网站: https://github.com/ 2.登录 3.创建仓库 二. 1.安装git 2.刚才我们已经在github上面创建了一个仓库,那么我们现在就在 ...

  7. Oracle 物理结构(四) 文件-控制文件

    一.什么是控制文件 控制文件是Oracle数据库中十分重要的文件.Oracle启动时,首先会读取参数文件,读取了参数文件,实例所需要的共享内存和后台进程就可以启动了,这就是数据库实例的nomunt阶段 ...

  8. Shell基本语法知识

    Shell 就是一个命令解释器,他的作用就是解释执行用户输入的命令及程序等,用户每输入一条命令,Shell 就解释一条.这种从键盘一输入命令,就可以立即得到回应的对话方式,就称为交互的方式. 当命令或 ...

  9. 【luogu1468】[Violet]蒲公英--求区间众数

    题目背景 亲爱的哥哥: 你在那个城市里面过得好吗? 我在家里面最近很开心呢.昨天晚上奶奶给我讲了那个叫「绝望」的大坏蛋的故事的说!它把人们的房子和田地搞坏,还有好多小朋友也被它杀掉了.我觉得把那么可怕 ...

  10. 【线性代数】4-4:正交基和Gram算法(Orthogonal Bases and Gram-Schmidt)

    title: [线性代数]4-4:正交基和Gram算法(Orthogonal Bases and Gram-Schmidt) categories: Mathematic Linear Algebra ...