需求:
每天发送一份邮件。
安装
pip install django-crontab
添加app名称到 settings.py中
INSTALLED_APPS = (
'django_crontab',
...
)
创建定时任务
首先在原来的app 中(与view.py同级)新建一个cron.py (名字可以任意,其实也可以放在view.py中,新建文件方便管理。)
def test():
print 123
#你要执行的任务函数
在 settings.py中的最后增加
CRONJOBS = [
('*/5 * * * *', 'appname.cron.test','>>/home/test.log')
]
如果你有多个定时任务,都放入CORJOBS中即可,
每个定时任务分为三部分定义:
任务时间
基本格式 :
分 时 日 月 周 命令
M: 分钟(0-59)。每分钟用*或者 */1表示
H:小时(0-23)。(0表示0点)
D:天(1-31)。
m: 月(1-12)。
d: 一星期内的天(0~6,0为星期天)
‘appname.cron.test’,这个appname就是你开发时加入到settings中的那个。因为你的cron.py文件就在这个下面,否则找不到路径。cron 就是你自己起的任务文件的名字。test就是执行的函数中的内容。
‘>>/home/test.log’,通常会输出信息到一个文件中,就使用这个方法,注意的是‘>>’表示追加写入,’>’表示覆盖写入。
启动
以上都完成后,需要执行
python manage.py crontab add
将任务添加并生效
显示当前的定时任务
python manage.py crontab show
删除所有定时任务
python manage.py crontab remove
重启django服务。
执行
corntab -e
应该是可以看到系统中创建了该定时任务。
说到底,只是django-crontab插件对linux底层的调用,不确定这个方法在windows 上是否生效。