celery-beat执行定时任务
为了检测订单列表中的订单状态是否已经超时,我们可以使用一个定时任务,让它每隔一定时间来进行检测。
配置定时任务
本文介绍了如何使用Django Celery Beat执行定时任务。首先安装django-celery-beat应用并执行迁移操作,然后启动Celery Worker和Celery Beat。Celery Worker负责执行具体的任务,而Celery Beat则负责调度任务的执行时间。
以下是具体的步骤:
1.安装django-celery-beat应用:
pip install django-celery-beat
2.在Django项目的settings.py文件中将django_celery_beat添加到INSTALLED_APPS中:
INSTALLED_APPS = [
# other apps...
'django_celery_beat',
]
3.执行迁移操作以创建Celery Beat相关的表:
python manage.py migrate
执行完毕后,数据库中会新增很多和celery-beat相关的表,如下图所示。

4.启动Celery Worker和Celery Beat:
celery -A [项目名称] worker -l info
示例如下:

celery -A [项目名称] beat -l info --scheduler django_celery_beat.schedulers:DatabaseScheduler
示例如下:

5.在后台管理界面中配置定时任务:
- 打开后台管理界面,URL为
/admin。 - 在
周期任务部分添加一个新的周期性任务。 - 配置任务的名称、任务函数、执行间隔等参数。
- 保存任务配置。
添加周期性任务,如下图所示。

添加时间间隔,如下图所示。

如果执行的函数有参数,则需要添加参数,如下图所示。

启动flower,检测任务的执行
使用命令启动flower, 命令如下:
celery -A dx_movie flower
如下图:

访问flower网址,效果如下图所示。

flower中会检测到每隔5秒执行一次。
小结
以上是使用Django Celery Beat执行定时任务的基本步骤。可以根据实际需求和任务函数的参数设置具体的任务配置,实现定时执行任务的功能。
【大熊课堂精品课程】
Python零基础入门动画课: https://www.bilibili.com/cheese/play/ss7988
Django+Vue:全栈开发: https://www.bilibili.com/cheese/play/ss8134
PyQT6开发桌面软件: https://www.bilibili.com/cheese/play/ss12314
Python办公自动化: https://www.bilibili.com/cheese/play/ss14990
Cursor AI编程+MCP:零基础实战项目课: https://www.bilibili.com/cheese/play/ss105194189
Pandas数据分析实战: https://www.bilibili.com/cheese/play/ss734522035
AI大模型+Python小白应用实战: https://www.bilibili.com/cheese/play/ss3844