微信搜索superit|邀请体验:大数据, 数据管理、OLAP分析与可视化平台 | 赞助作者:赞助作者

python笔记(Django定时任务)

python aide_941 2℃ 0评论

链接:https://www.jianshu.com/p/e4a8f173b4b0

实现Django定时任务的方法(插件)很多,复杂却功能完备的有: Django-celery
但今天我们使用Django-crontab,选择它的原因在于配置简单,使用方便。
废话不多说,使用步骤:

  1. 安装配置

     pip install django-crontab
    
    • 1

    再在settings.py中添加app:

     INSTALLED_APPS = (
            ...
            'django_crontab',
        )
    
    • 1
    • 2
    • 3
    • 4

    如果最后提示缺少什么模块,就自行pip安装。

  2. 创建定时任务
    在app内新建py文件,文件名称随意。
    例如我们在名为blog的app下新建了一个core.py文件。
    内容:

     项目名称/blog/core.py
    
     def task():
        #要执行的任务函数
    
    • 1
    • 2
    • 3
    • 4

    然后在 settings.py中增加:
    最简单配置

     CRONJOBS = [
         # 表示每天2:01执行
         ('01 2 * * *', 'blog.core.task')
     ]
     第一个参数(表示时间):
     前5个字段分别表示:
        • 分钟:0-59
        • 小时:1-23
        • 日期:1-31
        • 月份:1-12
        • 星期:0-6(0表示周日)
     一些特殊符号:
     *: 表示任何时刻
     ,: 表示分割
     -:表示一个段,如第二端里: 1-5,就表示1到5点
     /n : 表示每个n的单位执行一次,如第二段里,*/1, 就表示每隔1个小时执行一次命令。也可以写成1-23/1.
     第二个参数(表示路径):
     格式:app名称/文件名/函数名
     如果想生成日志,那就再加一个字符串类型的参数:'>> path/name.log', path路径,name文件名。'>>'表示追加写入,'>'表示覆盖写入。
     提示:如果你有多个定时任务,以逗号隔开,都放入CORJOBS中即可。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
  3. 启动任务

    以上都完成后,需要执行

     python manage.py crontab add
    
    • 1

    将任务添加并生效
    显示当前的定时任务

     python manage.py crontab show
    
    • 1

    删除所有定时任务

     python manage.py crontab remove
    
    • 1

    重启django服务
    执行(可能不需要,因为自己并没有用,也正常使用了。)

     python manage.py corntab -e
    
    • 1
  4. 问题

     4.1 Django低级版本可以使用吗?
     答:版本太低请安装0.6.0版本
     pip install django-crontab==0.6.0
     4.2 支持Windows吗?
     答:不支持
     4.3 使用add命令时,遇到"bad command"/"errors in cronfile"报错。
     答:第一个参数错误,请仔细检查。

转载请注明:SuperIT » python笔记(Django定时任务)

喜欢 (0)or分享 (0)

您必须 登录 才能发表评论!