通过admin配置定时任务
通过admin配置定时任务
安装包
pip install django-celery-beat
# 使用这个的前提是你已经安装了其他包了
pip install Django
pip install celery
pip install redis
pip install eventlet
去app中注册
INSTALLED_APPS = [
# 其他包
"django_celery_beat",
]
屏蔽掉原来的调度器
CELERY_BEAT_SCHEDULER = 'django_celery_beat.schedulers.DatabaseScheduler'
设置时区
参考文章
https://blog.csdn.net/qq_41341757/article/details/109319850
https://www.jianshu.com/p/39fa4ac3a236
注意:周期性任务内的开始时间不需要设置。
# 方案1
LANGUAGE_CODE = "zh-hans"
TIME_ZONE = "Asia/Shanghai"
USE_I18N = True
USE_TZ = True
# django中推荐使用USE_TZ = True,让数据库存储0时区时间
# USE_TZ = True,和 TIME_ZONE = ‘Asia/Shanghai’ # 亚洲上海必须设置。
# -------------------------------------------------------------------
# 方案2
LANGUAGE_CODE = "zh-hans"
TIME_ZONE = "Asia/Shanghai"
USE_I18N = True
USE_TZ = False
CELERY_DJANGO_CELERY_BEAT_TZ_AWARE = False
# 方案2说明
# 1 SETTINGS USE_TZ=FALSE时添加该选项,否启动 DJANGO CELERY BEAT 的时候会出现这个错误
# TYPEERROR: CAN'T COMPARE OFFSET-NAIVE AND OFFSET-AWARE DATETIMES
# 2 时间需要手动减去8个小时
迁移数据库
python manage.py migrate django_celery_beat # 写上app名称单独迁移某一个数据库
# 这一步操作之后,可以进入admin后台查看到 周期性任务
在控制台启动worker和beat
celery -A luffy_api.celery1 worker -l debug -P eventlet
celery -A luffy_api.celery1 beat -l debug
在django-admin后台设置任务即可
需要注意:周期性任务里面的开始时间和结束时间不需要勾选,不然会报错。
本文作者:小满三岁啦
本文链接:https://www.cnblogs.com/ccsvip/p/18220858
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步