hand
_1_35_26
4
python3.X - Web - Django3.2.9
共43篇
python3.X - Web - Django3.2.9
返回栏目
0k
0.6k
0.1k
0.2k
0.1k
0.2k
6k
1k
6k
2k
2k
0.4k
0.3k
0.3k
1k
0.5k
3k
2k
0.6k
0.9k
1k
1k
3k
0.1k
0.3k
0.4k
0.4k
0.1k
0.3k
2k
1k
1k
1k
5k
1k
1k
0k
3k
2k
0k
0.1k
0.3k
0k
返回python3.X - Web - Django3.2.9栏目
作者:
贺及楼
成为作者
更新日期:2024-06-13 21:02:14
系统 | 支持 |
---|---|
Linux | √ |
Windows | × |
crontab是Linux系统提供的一个命令,用来完成定时任务;
使用django-crontab 扩展 封装了Linux提供的crontab 命令;
可以独立于程序之外,不会占用程序资源,耦合性低;
但是它不灵活,比如订单支付问题,crontab不知道要什么时候执行,所以它做不到。
pip install django-crontab
INSTALLED_APPS = [
...
'django_crontab'
]
# 定时任务
'''
* * * * * :分别表示 分(0-59)、时(0-23)、天(1 - 31)、月(1 - 12) 、周(星期中星期几 (0 - 7) (0 7 均为周天))
crontab范例:
每五分钟执行 */5 * * * *
每小时执行 0 * * * *
每天执行 0 0 * * *
每周一执行 0 0 * * 1
每月执行 0 0 1 * *
每天23点执行 0 23 * * *
'''
CRONJOBS = [
('*/1 * * * *', 'base.crontabs.confdict_handle', ' >> /tmp/logs/confdict_handle.log'), # 注意:/tmp/base_api 目录要手动创建
]
或者:
CRONJOBS = [
('*/5 * * * *', 'appname.cron.test','>>/home/test.log')
]
'''
‘/5 * * *’ 遵循的是crontab 语法。
‘appname.cron.test’,这个appname就是你开发时加入到settings中的那个。因为你的cron.py文件就在这个下面,否则找不到路径。cron 就是你自己起的任务文件的名字。test就是执行的函数中的内容。
‘>>/home/test.log’,通常会输出信息到一个文件中,就使用这个方法,注意的是‘>>’表示追加写入,’>’表示覆盖写入。
'''
from .models import ConfDict # base内的一个model,定时任务多数用来操作数据库,因此给一个示例
import datetime
# 定时任务
def confdict_handle():
try:
objs = CondDict.objects.all()
print(obj)
loca_time = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
print('本地时间:'+str(loca_time))
except Exception as e:
print('发生错误,错误信息为:', e)
开启定时器
命令 | 释义 |
---|---|
python manage.py crontab add |
将任务添加并生效(查看开启的定时器) |
python manage.py crontab show |
显示当前的定时任务 |
python manage.py crontab remove |
删除所有定时任务 |
crontab -l |
查看定时任务列表 |
python3.X - Web - Django3.2.9
整章节共43节
快分享给你的小伙伴吧 ~