环球热点!Python Celery定时任务详细讲解
目录
前言一、Celery定时任务是什么?二、使用步骤1.代码结构2.启动定时任务3.执行结果总结前言
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秒执行
结果如下:
总结
到此这篇关于Python Celery定时任务详细讲解的文章就介绍到这了,更多相关Python Celery 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
X 关闭
X 关闭
- 1转转集团发布2022年二季度手机行情报告:二手市场“飘香”
- 2充电宝100Wh等于多少毫安?铁路旅客禁止、限制携带和托运物品目录
- 3好消息!京东与腾讯续签三年战略合作协议 加强技术创新与供应链服务
- 4名创优品拟通过香港IPO全球发售4100万股 全球发售所得款项有什么用处?
- 5亚马逊云科技成立量子网络中心致力解决量子计算领域的挑战
- 6京东绿色建材线上平台上线 新增用户70%来自下沉市场
- 7网红淘品牌“七格格”chuu在北京又开一家店 潮人新宠chuu能红多久
- 8市场竞争加剧,有车企因经营不善出现破产、退网、退市
- 9北京市市场监管局为企业纾困减负保护经济韧性
- 10市场监管总局发布限制商品过度包装标准和第1号修改单

