Celery 的 beat 是一个用于调度和执行周期性任务组件。要使用 beat 实现定时任务,你需要按照以下步骤操作:
1.安装 Celery: 如果你还没有安装 Celery,首先需要安装它。
bash pip install celery
2.创建 Celery 应用: 你需要创建一个 Celery 应用。
python from celery import Celery app = Celery('my_tasks', broker='pyamqp://guest@localhost//')
在这个例子中,broker 配置为使用 RabbitMQ,你需要根据你的消息中间件进行相应的配置。
3.定义周期性任务: 在 Celery 应用中定义周期性任务。
python @app.task def my_task(): print("My task is running...")
4.配置 beat: 在 Celery 应用中配置 beat。
python from celery.schedules import crontab app.conf.beat_schedule = { 'add-every-minute': { 'task': 'my_tasks.my_task', 'schedule': crontab(), # 每分钟执行 }, }
在这个例子中,crontab 用于定义基于 cron 表达式的调度。你可以使用如 crontab(minute=0, hour=0) 来表示每天午夜执行任务。
5.启动 beat: 启动 beat 服务来运行周期性任务。
bash celery -A my_tasks beat -l info
这里,-A 参数指定了 Celery 应用的名称(即 my_tasks),-l 参数设置了日志级别。
6.保持 beat 运行: beat 作为一个独立的服务会继续运行,你可以使用 Ctrl+C 来停止它。
为了保持 beat 服务运行,你可以将其作为系统服务启动,或者使用一个守护进程管理器如 systemd、supervisord 等。
请记住,这只是一个简单的例子。在生产环境中,你可能需要考虑更多的因素,比如结果的持久化、任务的重新执行、中间件的安全性等。
另外,Celery 的 beat 提供了多种调度器,比如 crontab、interval 和 path 等,你可以根据需求选择合适的调度器。更多详细信息和高级用法,
请参考 Celery 文档。