django项目中使用crontab定时任务

使用pip 安装 django  我使用的是django 1.11.11 版本

pip install django==1.11.11

创建django项目  

django-admin startproject project-name

创建django应用

python3 manage.py startapp crontabapp

使用pip安装django-crontab

pip install django-crontab

注册定时任务的django应用 在django settings 文件中

'crontabapp',
'django_crontab'

在刚才创建的crontab应用的views.py 文件中 编写 要定时执行的函数,(要定时执行的函数要写到应用中,写到其他非应用文件夹,会找不到这个函数,也就执行不了

编写定时任务 


CRONJOBS = [

    ('1 1 * * *', "crontabapp.views.generedaydata",'>> /home/python/kolsite/kolsite/logs/daydata.log'),
    ('1 1 * * */1', "crontabapp.views.genereweekdata",'>> /home/python/kolsite/kolsite/logs/weekdata.log'),
    ('1 1 1 */1 *', "crontabapp.views.generemonthdata",'>> /home/python/kolsite/kolsite/logs/monthdata.log'),
]

crontab 命令简单介绍

* * * * * 分 时 日 月 周  需要定时的任务  重定向到日志文件

*/1 和 * 都是表示 每个 1(时、分、日、月、周)运行 一个
*/3 * * * * 表示 每隔三分钟 执行一个
1 * * * * 表示 每一小时中的第一分钟 运行 一次
1 2 * * *  表示 每天的2点1分 运行一次
以此类推 

启动django后

添加定时任务

python3 manage.py crontab add

查看定时任务

python manage.py crontab show

移除定时任务

python3 manage.py crontab remove

记住这三个命令就可以了


linux下解决中文报错问题(貌似我之前没加 也没报错  /抠鼻)

django 的 settings.py下加上这句

# 解决crontab中文问题
CRONTAB_COMMAND_PREFIX = 'LANG_ALL=zh_cn.UTF-8'

一般比较容易出错的几点:

1、没有把定时任务写在应用下,写在其他非应用文件夹下,比如我第一次就把定时函数写在了script文件夹下,然而这个并不是应用。死活没有定时效果

2、重定向符号后面 要加空格 (linux命令 重定向符号后面 加空格 载加路径 ) 

3、定时任务是个函数,而不是脚本或者文件,定时任务只需要在应用文件夹下的某个文件下编写一个函数。(如下图)

完!

猜你喜欢

转载自blog.csdn.net/p571912102/article/details/82630482