Python Celery定时任务详细讲解
作者:panda_225400 发布时间:2022-08-12 08:25:21
标签:Python,Celery,定时,任务
前言
Celery在python中的应用除了实现异步任务(async task)外也可以执行定时任务(beat)
一、Celery定时任务是什么?
Celery默认任务单元由任务生产者触发,但有时可能需要其自动触发,而Beat进程正是负责此类任务,能够自动触发定时/周期性任务.
Celery 进行周期任务也很简单,只需要在配置中配置好周期任务,然后在运行一个周期任务触发器(beat)即可,具体网上看
二、使用步骤
win10 + python3 + redis + celery 5
1.代码结构
celery_config.py配置:
代码如下(示例):
#-*-coding=utf-8-*-
from datetime import timedelta
from celery.schedules import crontab
# 中间件
BROKER_URL = 'redis://scck2svr03:6379/6'
# 结果存储
# CELERY_RESULT_BACKEND = 'redis://:scck2svr03:6379/5'
CELERYD_CONCURRENCY = 20 # 并发worker数
CELERYD_FORCE_EXECV = True # 非常重要,有些情况下可以防止死锁
# CELERY_TASK_SERIALIZER = 'msgpack' # 任务序列化和反序列化使用msgpack方案
CELERY_RESULT_SERIALIZER = 'json' # 读取任务结果一般性能要求不高,所以使用了可读性更好的JSON
CELERY_TASK_RESULT_EXPIRES = 60 * 60 * 24 # celery任务结果有效期
CELERY_ACCEPT_CONTENT = ['json', 'msgpack'] # 指定接受的内容类型
CELERY_TIMEZONE = 'Asia/Shanghai' # celery使用的时区
CELERY_ENABLE_UTC = True # 启动时区设置
# 默认worker队列
#CELERY_DEFAULT_QUEUE = 'default'
# 异步任务
CELERY_IMPORTS = (
"celery_learning.email.tasks"
)
# celery beat
CELERYBEAT_SCHEDULE = {
'periodic_task-every-minute': {
'task': 'celery_learning.email.tasks.add',
'schedule': crontab(minute="*/1"),
'args': (1,2)
},
'periodic_task-every-10second':{
'task':'celery_learning.email.tasks.add',
'schedule':timedelta(seconds=10),
'args':(1,12)
}
}
2.启动定时任务
代码如下(示例):
终端1:celery -A celery_learning.celery_app worker -l info -P gevent
终端2:celery -A celery_learning.celery_app beat
终端1
终端2
3.执行结果
两个定时任务,一个每分钟执行,一个每10秒执行
结果如下:
来源:https://blog.csdn.net/panda_225400/article/details/121883120


猜你喜欢
- python中实现静态方法和类方法都是依赖于python的修饰器来实现的。 对象方法有self参数,类方法有cls参数,静态方法是不需要这些
- 表结构: CREATE TABLE [dbo].[Xtest]( [ID] [bigint] IDENTITY(1,1) NOT NULL,
- 本文实例讲述了mysql中的sql_mode模式。分享给大家供大家参考,具体如下:mysql数据库的中有一个环境变量sql_mode,定义了
- 目前任务需要做一个界面程序,PyQt是非常方便的选择,QT丰富的控件以及python方便的编程。近期遇到界面中执行一些后台任务时界面卡死的情
- 通常用户看到的页面的样式会受到三层控制,第一层是浏览器的默认样式,第二层是网页定义样式,第三层是用户自定义样式。和CSS一样,后面的优先级高
- RSA算法是一种非对称加密算法,是现在广泛使用的公钥加密算法,主要应用是加密信息和数字签名。 * 给出的RSA算法简介如下: 假设Alic
- 从SQL Server2005开始提供了一种新的数据类型XML type,它允许用户将数据以XML文件的格式直接存储到数据表中。结合在ASP
- 1、什么是偏函数partialpython中提供一种对于函数固定属性的函数 2、偏函数的作用把一个函数的某些参数给固定住(也就是设
- 1、Bootstrap-table使用github:https://github.com/wenzhixin/bootstrap-table
- 以下实验是我在百度公司实习的时候做的,记录下来留个小经验。多GPU训练cifar10_97.23 使用 run.sh 文件开始训练cifar
- 环境:1 .Windows Server 2016 Datacenter 64位2 .SQL Server 2016 Enterprise
- 在MySQL中可以使用IF()、IFNULL()、NULLIF()、ISNULL()函数进行流程的控制。1、IF()函数的使用IF(expr
- 下载源码git clone https://github.com/mysql/mysql-server.gitcd mysql-server
- python2.7,下面是跑在window上的,稍作修改就可以跑在linux上。实测win7和raspbian均可,且raspbian可以直
- 如下所示:import requestsurl='http://####'proxy={'http':
- 平时我们在使用MySQL数据库的时候经常会因为操作失误造成数据丢失,MySQL数据库备份可以帮助我们避免由于各种原因造成的数据丢失或着数据库
- 可以输入的下拉菜单,不错的一个效果,相信asp之家给大家收集的这个代码会有不少人需要!<html> <head> &
- ant-design-vue自定义使用阿里iconfont图标\第一步:从iconfont获取项目js链接第二步 在需要引用iconfont
- #python中的函数定义,使用和传参###------------------- 必要参数 -----------------------
- http库的使用要实现一个httpServer,首先我们需要先了解一下go语言的原生http库,通常会用到的包括以下几个内容:Body和Ge