Python:Celery+Redis实现定时任务

简介:Celery 是一个基于 Python 的任务队列库,它提供了一种方便的方式来在异步处理应用程序中执行定期或延迟的任务。Celery 定时任务是 Celery 提供的一种重要功能,它可以让开发者以一种简单和可靠的方式安排和执行周期性的任务。

历史攻略:

Python:Celery+Redis+Flower安装和使用

案例源码:

# -*- coding: utf-8 -*-
# time: 2023/4/16 11:23
# file: tasks.py
# 公众号: 玩转测试开发
import datetime
from celery import Celery
from celery.schedules import crontab

# 连接远程redis服务的地址和端口号
redis_host = '111.112.113.114'  # 你的redis服务ip
redis_port = '6379'

app = Celery('tasks', broker=f'redis://{redis_host}:{redis_port}/0', backend=f'redis://{redis_host}:{redis_port}/1')


@app.task
def add(x, y):
    return x + y


@app.task
def subtract(x, y):
    return x - y


@app.task
def print_message():
    print(f'The time is now {datetime.datetime.now()}')


app.conf.beat_schedule = {
    'print-every-minute': {
        'task': 'tasks.print_message',
        'schedule': crontab(minute='*'),
    },
}

运行步骤:分别启动一个worker和 Beat 守护进程,即会开始运行定时任务。

启动 Celery worker

celery -A tasks worker --loglevel=info  -P eventlet

启动 Celery Beat 守护进程:

celery -A tasks beat --loglevel=info

运行结果:

图片

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值