django-crontab定时任务
2015-11-05 19:07
786 查看
django-crontab实现定时任务
1 django-crontab安装
django-crontab安装:pip install django-crontab
django-crontab加入:只需要将
django-crontab加入到settings.py的
INSTALLED_APPS即可。如下代码:
INSTALLED_APPS = ( 'django_crontab', ... )
2 django-crontab配置
django-crontab可以定时运行自定义命令和函数两种方式,因为之前尝试用command+crontab时已经实现了自定义command,所以自然而然使用了自定义命令这种形式。
2.1 django-crontab定时运行命令
我先参考Django官方文档自定义了一个命令aizhan_5domain_visits,专门用于抓取爱站流量,并将结果保存在sqlite3数据库中(具体步骤在本文中不赘述了)。
其次,我在
settings.py中加入了django-crontab的命令:
CRONJOBS = [ ('47 11 * * *', 'django.core.management.call_command', ['aizhan_5domain_visits']), ]
意思就是每天11点47分运行
aizhan_5domain_visits这个命令。接下来就剩最后一步任务加载了。
2.2 django-crontab定时运行函数
django-crontab也可以定时运行函数,只是在CRONJOBS配置时有差别。
CRONJOBS关于函数的配置如下:
CRONJOBS = ( # 初级模式 ('*/5 * * * *', 'myproject.myapp.cron.my_scheduled_job'), # 中级模式 ('0 0 1 * *', 'myproject.myapp.cron.my_scheduled_job', '> /tmp/last_scheduled_job.log'), #高级模式 ('0 0 * * 0', 'django.core.management.call_command', ['dumpdata', 'auth'], {'indent': 4}, '> /home/john/backups/last_sunday_auth_backup.json'), )
分析结果:
初级模式很直观,意思就是每五分钟执行一次
my_scheduled_job这个程序;
中级模式有个后缀,意思是将程序
my_scheduled_job的结果输出到文件
/tmp/last_scheduled_job.log中;
高级模式加入了参数,其中
['dumpdata', 'auth']和
{'indent': 4}都是参数,只是
[]中的参数是按照顺序代入,而
{}中的参数指定了变量名称,最后一个也是输出结果的后缀。
3 django-crontab任务加载
django-crontab任务加载比较简单,只需要运行python manage.py crontab add即可。如果你运行
crontab -e可以看到crontab中多了一行:
* * * /home/aizhan/bin/python /home/aizhan/aizhan/manage.py crontab run c27d1050fb7f87225bcff587ef5a35a3 # django-cronjobs for aizhan
这是django-crontab自动生成的。
如果要移除所有的任务,则运行
python manage.py crontab remove;
当你修改了任务,需要再次运行
python manage.py crontab add。
通过crontab -l 可以看到生成的定时任务
相关文章推荐
- django 基于proxy实现用户权限管理
- django 基于proxy实现用户权限管理
- 社会工程学教程讲座之Google黑客技术
- Django ORM 入坑记录
- Mongo db.getMongo().setSlaveOk()
- GoldenGate: Extract Abend with Detect Inconsistency in Pdata (文档 ID 1355067.1)
- Intent中的四个重要属性——Action、Data、Category、Extras
- poj 2940 Wine Trading in Gergovia 贪心+扫描
- mrjob 使用 mongoldb 数据源【转】
- 关键字爬google的pdf
- ubuntu sougou输入法
- HDU 5512 Pagodas
- google书签找回
- 数据签名标准算法-DSA (Digital signature Algorithm DSA)
- MTK6572 开机logo 和开机动画配置
- Django自带过滤器总结
- Algorithm Gossip: 得分排行
- Algorithm Gossip: 约瑟夫问题(Josephus Problem)
- Algorithm Gossip: 背包问题(Knapsack Problem)