脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - Python - Python Celery定时任务详细讲解

Python Celery定时任务详细讲解

2022-08-01 19:54panda_225400 Python

这篇文章主要介绍了Python Celery定时任务详细讲解,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的朋友可以参考一下

前言

Celery在python中的应用除了实现异步任务(async task)外也可以执行定时任务(beat)

一、Celery定时任务是什么?

Celery默认任务单元由任务生产者触发,但有时可能需要其自动触发,而Beat进程正是负责此类任务,能够自动触发定时/周期性任务.

Python Celery定时任务详细讲解

Celery 进行周期任务也很简单,只需要在配置中配置好周期任务,然后在运行一个周期任务触发器(beat)即可,具体网上看

二、使用步骤

win10 + python3 + redis + celery 5

1.代码结构

Python Celery定时任务详细讲解

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

Python Celery定时任务详细讲解

终端2

Python Celery定时任务详细讲解

3.执行结果

两个定时任务,一个每分钟执行,一个每10秒执行

结果如下:

Python Celery定时任务详细讲解

总结

到此这篇关于Python Celery定时任务详细讲解的文章就介绍到这了,更多相关Python Celery 内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文地址:https://blog.csdn.net/panda_225400/article/details/121883120

延伸 · 阅读

精彩推荐