当前位置:网站首页>celery工作原理图
celery工作原理图
2022-08-03 05:10:00 【중둑【上瘾】】

1.celery 的介绍
1.1celery的基本介绍
celery是基于python实现的一个异步任务的调用工具,同时还是一个任务队列,主要用于处理耗时的任务。
celery也被称为芹菜。
celery架构由三个模块组成:消息中间件,任务执行单元和任务执行结果储存 组成。
其实那在刚接触的时候小编的理解是 :老板把地皮交给包工头去干 让包工头把房子建好 然后包工头找了工人 把任务分配给工人让工人去干 最后工人盖好房子老板验收(这是小编自己的理解也就适合入门)

1.2什么是celery beat
celery支持定时任务,设定好任务的执行时间,celery就会定时自动帮你执行, 这个定时任务模块叫celery beat
2.celery定时任务的配置

__init__.py
里面主要是celery初始化配置
from datetime import timedelta
from celery import Celery
import os
import django
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "自己的项目名.settings")
django.setup()
celery_app = Celery('mycelery')
#读取celery 的配置
celery_app.config_from_object('celery_task.config')
# 定时任务
# 文件夹名.文件名
celery_app.autodiscover_tasks(['celery_task.times'])
celery_app.conf.update(
CELERYBEAT_SCHEDULE={
'sum-task': {
# 文件夹名.文件名.方法名
'task': 'celery_task.times.my_con',
# 多少秒执行一次(eg:5秒一执行)
'schedule': timedelta(seconds=5),
# 这是传入my_con方法中的参数
'args': (5, 6)
},
'sum-task1': {
'task': 'celery_task.times.my_print',
'schedule': timedelta(seconds=3),
'args': ()
},
}
)
config.py
"""
celery 配置
"""
消息中间件 broker
BROKER_URL = 'redis://xx.xx.xx.xx:6379/11'
任务结果存储 results backend
CELERY_RESULT_BACKEND = 'redis://xx.xx.xx.xx:6379/12'
# 时区
CELERY_TIMEZONE = 'Asia/Shanghai'
# 导入指定的任务模块
CELERY_IMPORTS = (
'celery_task.tasks'
)
task.py 里面写的是异步任务就不展示了
————————————————
times.py
里面写的是定时任务
# 定时任务import time
from celery_task import celery_app
@celery_app.task()
def my_con(x,y):
print(x,y)
print('x和y相加')
return x+y
@celery_app.task()
def my_print():
print('22222222')
3.celery 启动命令
异步任务的启动命令:celery -A 任务名 worker -l info -P eventlet
定时任务的启动命令:celery -A 任务名 beat -l info
------------------------------------------------------------------------------------------------------------------------------------------
Celery有以下优点:
简单:Celery 易于使用和维护,并且它 不需要配置文件 ,并且配置和使用还是比较简单的
高可用:当任务执行失败或执行过程中发生连接中断,celery 会自动尝试重新执行任务
快速:单个 Celery 进程每分钟可处理数以百万计的任务,而保持往返延迟在亚毫秒级
灵活: Celery 几乎所有部分都可以扩展或单独使用,各个部分可以自定义。
主应用创建-----celery
from celery import Celery
from django.conf import settings
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE","p6.settings")
app = Celery("worker")
app.conf.broker_url= "redis://:/6"
app.conf.result_backend = 'redis://:/7'
app.autodiscover_tasks(settings.INSTALLED_APPS)
app.autodiscover_tasks()边栏推荐
- Alienware上线首个数字时装AR试穿体验
- 2022/08/02 Study Notes (day22) Multithreading
- 《录取通知》 观后感
- 用户密码验证
- Bubble sort in c language structure
- tag单调栈-单调栈预备知识-lt.739. 每日温度
- Harmony OS ets ArkUI 】 【 】 the development basic page layout and data connection
- Redis6学习笔记
- 【HMS core】【Ads Kit】Huawei Advertising——Overseas applications are tested in China. Official advertisements cannot be displayed
- breed Web刷机升级详细教材修正编译器固件说明_itkeji.top
猜你喜欢

js implements a bind function

Alienware上线首个数字时装AR试穿体验

js实现一个 bind 函数

idea使用@Autowired注解爆红原因及解决方法

Harmony OS Date ano UI 】 【 】 the basic operation

shell脚本循环语句

Fluorescent marker peptides FITC/AMC/FAM/Rhodamine TAMRA/Cy3 / Cy5 / Cy7 - Peptide

在树莓派上搭建属于自己的网页(2)

Tag stack - stack monotonically preparatory knowledge - lt. 739. The daily temperature

typescript44-对象之间的类兼容器
随机推荐
PotPlayer实现上班摸鱼电视自由
设计模式——组合模式、享元模式(Integer缓存)(结构型模式)
ss-5.consul服务端+生产者+消费者
Interface Test Framework Practice | Process Encapsulation and Test Case Design Based on Encrypted Interface
FileZilla 搭建ftp服务器
shell script loop statement
breed Web刷机升级详细教材修正编译器固件说明_itkeji.top
Installation of Apache DolphinScheduler version 2.0.5 distributed cluster
junit总结
typescript39-class类的可见修饰符
1095 解码PAT准考证 (25 分)(C语言)
closures in js
获取Ip工具类
typescript42-readonly修饰符
Odps temporary query can write SQL, turned out to a named?
Harmony OS Date ano UI 】 【 】 the basic operation
【Harmony OS】【FAQ】Hongmeng Questions Collection 1
建造者模式(Builder Pattern)
Interface test Mock combat (2) | Combined with jq to complete batch manual Mock
VSO Downloader Ultimate 5.0.1.45 中文多语免费版 在线视频下载工具