文档章节

django-crontab 定时任务

郭周园
 郭周园
发布于 2017/08/23 10:40
字数 450
阅读 11
收藏 0

Django定时任务

  • django-celery (目前运维平台使用的方式)
  • django-crontab (一些简单的后台需要定时任务如果不用系统的crontab的话,建议使用它,引入使用都是非常简单)

django-crontab安装

  • 安装
pip install django-crontab -i https://pypi.doubanio.com/simple/  
  • django中引入,只需要将django-crontab加入到settings.py的INSTALLED_APPS即可。如下代码:
INSTALLED_APPS = (  'django_crontab',  ...)
  • django-crontab定时运行命令
将命令写在project/app/cron.py中的run_python函数中,multitask(表示一个app),scripts(文件夹)CRONJOBS = [      # 每天6点计算当月的域名的中断时间和中断次数    ('0 6 * * *', 'multitask.scripts.cron.run_python',[],{},'>/tmp/django_crontab.log'),]

django-crontab定时运行函数

  • django-crontab也可以定时运行函数,只是在CRONJOBS配置时有差别。CRONJOBS关于函数的配置如下:
CRONJOBS = (      # 初级模式    ('*/5 * * * *', 'app.cron.my_scheduled_job'),    # 中级模式    ('0   0 1 * *', 'app.cron.my_scheduled_job', '> /tmp/last_scheduled_job.log'),    #高级模式    ('0   0 * * 0', 'django.core.management.call_command', ['dumpdata', 'auth'], {'indent': 4}, '> /tmp/auth_backup.json'),)
  • 分析结果:
    • 初级模式很直观,意思就是每五分钟执行一次myscheduledjob这个程序
    • 中级模式有个后缀,意思是将程序myscheduledjob的结果输出到文件/tmp/lastscheduledjob.log中;
    • 高级模式加入了参数,其中['dumpdata', 'auth']和{'indent': 4}都是参数,只是[]中的参数是按照顺序代入,而{}中的参数指定了变量名称,最后一个也是输出结果的后缀。

django-crontab任务加载

  • django-crontab任务加载比较简单,只需要运行python manage.py crontab add即可。如果你运行crontab -e可以看到crontab中多了一行:
06 * * * /usr/bin/python /data/ops/manage.py crontab run d14277ca319041214070e145d358f835 >/tmp/django_crontab.log # django-cronjobs for cmdb  
  • 这是django-crontab自动生成的。
    • 如果要移除所有的任务,则运行python manage.py crontab remove
    • 当你修改了任务,需要再次运行python manage.py crontab add
    • 查看当前运行中的任务,则运行python manage.py crontab show

© 著作权归作者所有

共有 人打赏支持
郭周园
粉丝 0
博文 64
码字总数 10016
作品 0
成都
后端工程师
使用 django-crontab 实现定时任务

安装 添加 app 在 文件中添加 django-crontab: 配置 可以定时执行自定义命令或函数 定时函数 在django项目的settings.py中添加以下命令 定时命令 请参考关于如何自定义命令 操作命令 查看系...

与蟒唯舞
09/18
0
0
Django-celery 安装及使用测试

Celery为Django提供后台执行以及定时执行功能。 一、安装: 1、安装依懒包: tar xvf kombu-3.0.35.tar.gz cd kombu-3.0.35/usr/local/python27/bin/python setup.py install tar xvf billi......

lihuipeng
2016/05/13
0
0
Django框架17: Celery的使用

Celery介绍 1.什么是Celery Celery是一个python模块,它在官网的定义:Celery is asynchronous task queue/job based on distributed message passing. It is focused on real-time operatio......

代码打碟手
09/26
0
0
djcelery入门:实现运行定时任务

基于Django与Celery实现异步对列任务 - Python - 伯乐在线 http://python.jobbole.com/81953/ 更新于2015-08-26 注:本文根据官方文档结合具体例子整理,供celery入门学习,更多内容请移步参...

Kinegratii
2014/07/18
0
17
在 Linux 中安全且轻松地管理 Cron 定时任务

在 Linux 中遇到计划任务的时候,你首先会想到的大概就是 Cron 定时任务了。Cron 定时任务能帮助你在类 Unix 操作系统中计划性地执行命令或者任务。也可以参考一下我们之前的一篇《关于 Cron...

作者: Sk
10/03
0
0

没有更多内容

加载失败,请刷新页面

加载更多

一个可能的NEO链上安全随机数解决方案

0x00 困境 链上安全随机数生成应该算是一个比较蛋疼的问题,哪怕你的系统再牛逼,合约程序困在小小的虚拟机里,哪怕天大的本事也施展不开。 更悲催的是,交易执行的时候,是在每一个节点都执...

暖冰
28分钟前
0
0
【大福利】极客时间专栏返现二维码大汇总

我已经购买了如下专栏,大家通过我的二维码你可以获得一定额度的返现! 然后,再给大家来个福利,只要你通过我的二维码购买,并且关注了【飞鱼说编程】公众号,可以加我微信或者私聊我,我再...

飞鱼说编程
今天
1
0
Spring5对比Spring3.2源码之容器的基本实现

最近看了《Spring源码深度解析》,该书是基于Spring3.2版本的,其中关于第二章容器的基本实现部分,目前spring5的实现方式已有较大改变。 Spring3.2的实现: public void testSimpleLoad(){...

Ilike_Java
今天
1
0
【王阳明心学语录】-001

1.“破山中贼易,破心中贼难。” 2.“夫万事万物之理不外于吾心。” 3.“心即理也。”“心外无理,心外无物,心外无事。” 4.“人心之得其正者即道心;道心之失其正者即人心。” 5.“无...

卯金刀GG
今天
2
0
OSChina 周三乱弹 —— 我们无法成为野兽

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @ _刚刚好: 霸王洗发水这波很骚 手机党少年们想听歌,请使劲儿戳(这里) hahahahahahh @嘻酱:居然忘了喝水。 让你喝可乐的话, 你准忘不了...

小小编辑
今天
12
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部