功能:定时实现执行特定任务
由于看到celery 插件学习曲线较大,这个小的需求就使用django-crontab 解决。
安装:
pip install django-crontab
settings. py 配置:
添加app名称到 settings.py中
INSTALLED_APPS = (
'django_crontab',
...
)
到这里基本没有问题,接下来创建定时任务可以分成两种,一种是执行自定义的mange. py的命令,另一种是执行自定义函数。我选择的方法是自定义函数。
新建 task. py 文件
首先在原来的 app 中(与 view. py 同级)新建一个 task. py(名字可以任意,也可以放在 view. py 中,新建文件方便管理)
# 你要执行的任务函数
def test():
print(123)
如果你有多个定时任务,都放入 crontab tasks 中即可,
需要说明的是,
‘/1 * * *’ 遵循的是 crontab 语法。
settings. py 配置
CRONJOBS = [
('*/1 * * * *', 'appname.task.test', '>>/home/test.log')
]
‘appname.task.test’,这个appname就是你开发时加入到 settings 中的那个。因为你的task.py文件就在这个下面,否则找不到路径。task 就是你自己起的任务文件的名字。test就是执行的函数中的内容。
‘>>/home/test.log’,通常会输出信息到一个文件中,就使用这个方法,注意 ‘>>’ 表示追加写入,’>’ 表示覆盖写入。
启动
添加 crontab tasks
python manage.py crontab add
显示当前的定时任务
python manage.py crontab show
删除所有定时任务
python manage.py crontab remove
重启 django
python manage.py runserver
介绍依据个人理解,难免疏忽遗漏,如果能帮到大家最好。