• 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

  • 相关阅读:
    Golang里边的map变量是什么?
    Golang map的底层实现
    方法和函数的区别
    Golang 对 对象和指针 的理解
    React 部分
    前端开发概述、html、css基础
    服务器核心知识
    常用模块8.7
    2017.8.2迭代器和生成器
    2017.7.18可变/不可变类型,符号运算及其流程控制
  • 原文地址:https://www.cnblogs.com/liuweida/p/12347384.html
Copyright © 2020-2023  润新知