简介: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
运行结果: