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. 2019HDU多校Path——最短路最小割

    题目 给出一个 $n$ 个顶点 $m$ 条边的图,要求阻塞一些边,使得从 $1$ 到 $n$ 的最短路变长,求阻塞的边长度和的最小值,不必保证阻塞后可达. 分析 很显然,要阻塞的边肯定在最短路图上,先 ...

  2. BZOJ 4008 亚瑟王(概率DP 奥妙重重)

    题意 中文题面,就不解释了 分析 显然这道题直接求期望太麻烦,想想转化问题(这转化太神了). 定义f(i,j)f(i,j)f(i,j)表示第iii张卡总共被经过jjj次的概率,有转移方程式 f(i,j ...

  3. Codeforces Round #596 (Div. 2, based on Technocup 2020 Elimination Round 2) B2. TV Subscriptions (Hard Version)

    链接: https://codeforces.com/contest/1247/problem/B2 题意: The only difference between easy and hard ver ...

  4. JQuery实践--动画

    显示和隐藏没有动画的元素 使包装集里的元素隐藏 hide(speed,callback) speed:可选,速度.slow,normal,fastcallback:函数,可选,完成后调用的函数,无参数 ...

  5. 数据分析相关学习 -1 numpy

    前情提要: 数据分析:把一些看似杂乱无章的数据背后的信息提炼出来,总结出所研究 对象的内在规律 数据分析的三剑客: numpy,pandas,matplotlb numpy是python语言的一个扩展 ...

  6. MySQL 使用连接池封装pymysql

    备注:1,记得先修改连接的数据库哦,(用navicat更方便一点):2,分开两个py文件写入,运行sqlhelper.py文件 一.在utils.py中写 import pymysqlfrom DBU ...

  7. 04_实时监控本机内存和硬盘剩余空间,剩余内存小于 500M、根分区剩余空间小于 1000M 时,发送报警邮件给root 管理员.

    #!/bin/bash#提取根分区剩余空间disk_size=$(df -h / | awk '/\//{print $4}')#提取内存剩余空间disk_size=$(df -h / | awk ' ...

  8. E. The Contest ( 简单DP || 思维 + 贪心)

    传送门 题意: 有 n 个数 (1 ~ n) 分给了三个人 a, b, c: 其中 a 有 k1 个, b 有 k2 个, c 有 k3 个. 现在问最少需要多少操作,使得 a 中所有数 是 1 ~ ...

  9. Codevs 1242 布局 2005年USACO(差分约束)

    1242 布局 2005年USACO 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 当排队等候喂食时,奶牛喜欢和它们的朋友站得靠近 ...

  10. C到汇编[1]

    这篇文字解释这个问题:C语言函数调用在汇编语言是怎么实现的?栈模型很好的满足了函数调用的需求,以最简单的函数调用说明. : int add2(int a, int b){return a+b;} 00 ...