zoukankan      html  css  js  c++  java
  • django-crontab

    安装

    django-crontab是基于linux系统的定时任务,所以windows不能使用。

    pip install django-crontab
    

    使用

    在django的settings中注册app

    INSTALLED_APPS = (
        'django_crontab',
        ...
    )
    

    现在创建一个新方法,cron每5分钟执行一次

    在myapp/crontab.py中为:

    def my_scheduled_job():
    	pass
    

    添加到settings.py

    CRONJOBS = [
        ('*/5 * * * *', 'myapp.crontab.my_scheduled_job')
    ]
    

    定义位置参数和关键字参数,以便调用django管理命令:

    CRONJOBS = [
        ('*/5 * * * *', 'myapp.cron.other_scheduled_job', ['arg1', 'arg2'], {'verbose': 0}),
        ('0   4 * * *', 'django.core.management.call_command', ['clearsessions']),
    ]
    # 会将位置参数和关键字参数传递给想要执行的方法
    

    最后运行此命令将所有定义的作业从CRONJOBS添加到crontab

    python manage.py crontab add
    # 每次CRONJOBS中的任务发生变化时,都要执行一遍该命令。
    

    显示此项目的当前活跃的任务:

    python manage.py crontab show
    

    删除所有定义的作业

    python manage.py crontab remove
    

    配置

    CRONJOBS

    # cronjobs中的每个任务为一个元组
    必需:cron计时'* * * * *'(通常格式:http://en.wikipedia.org/wiki/Cron#Format)
    必需:要执行的方法的python模块路径
    可选:要执行方法的位置参数列表(默认值:[])
    可选:要执行方法的关键字参数字典(默认值:{})
    可选:特定于工作的后缀(用于将文件重定向到/重定向到文件,默认:“”)
    CRONJOBS = [
        ('*/5 * * * *', 'myapp.cron.other_scheduled_job', ['arg1', 'arg2'], {'verbose': 0}),
        ('0   4 * * *', 'django.core.management.call_command', ['clearsessions']),
    ]
    

    cron计时

    *    *    *    *    *
    -    -    -    -    -
    |    |    |    |    |
    |    |    |    |    +----- day of week (0 - 7) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
    |    |    |    +---------- month (1 - 12) OR jan,feb,mar,apr ...
    |    |    +--------------- day of month (1 - 31)
    |    +-------------------- hour (0 - 23)
    +------------------------- minute (0 - 59)
    

    CRONTAB_LOCK_JOBS

    如果同一作业的旧实例仍在运行,则阻止启动作业,默认:False

    CRONTAB_EXECUTABLE

    操作系统的crontab可执行文件的路径,默认:'/usr/bin/crontab'

    CRONTAB_DJANGO_PROJECT_NAME

    django项目的名称,用于构建manage.py的路径,并通过注释在contrab中标记作业以供以后删除

    默认值是从DJANGO_SETTINGS_MODULE环境变量读取

    CRONTAB_DJANGO_MANAGE_PATH

    manage.py文件的路径(包括manage.py本身,即'/home/john/web/manage.py')

    默认值是使用DJANGO_PROJECT_NAME生成

    CRONTAB_DJANGO_SETTINGS_MODULE

    • path to the python interpreter executable used to run the scheduled job
    • default uses the interpreter executable used to add the jobs (via ‘python manage.py crontab add’)

    CRONTAB_COMMAND_PREFIX

    • something you wanne do or declare before each job gets executed. A good point for environment variables.
    • default: ‘’ (empty string)
    • example: ‘STAGE=production’

    CRONTAB_COMMAND_SUFFIX

    在每项工作完成后你想做的事。默认空字符串。

    举例: '2>&1'

    CRONTAB_COMMENT

    用于标记要删除的添加的contab行,默认值包括项目名称以区分同一主机和用户上的多个项目

    默认:'django-crontabs for ' + CRONTAB_DJANGO_PROJECT_NAME

  • 相关阅读:
    在Ubuntu中通过update-alternatives切换软件版本
    SCons: 替代 make 和 makefile 及 javac 的极好用的c、c++、java 构建工具
    mongodb 的使用
    利用grub从ubuntu找回windows启动项
    How to Repair GRUB2 When Ubuntu Won’t Boot
    Redis vs Mongo vs mysql
    java script 的工具
    python 的弹框
    how to use greendao in android studio
    python yield的终极解释
  • 原文地址:https://www.cnblogs.com/liuweida/p/12347384.html
Copyright © 2011-2022 走看看