django的死简单crontab驱动的作业调度

django-crontab的Python项目详细描述


https://img.shields.io/travis/kraiz/django-crontab/master.svghttps://img.shields.io/coveralls/kraiz/django-crontab/master.svghttps://img.shields.io/pypi/dw/django-crontab.svghttps://img.shields.io/pypi/v/django-crontab.svghttps://img.shields.io/pypi/pyversions/django-crontab.svghttps://img.shields.io/pypi/l/django-crontab.svg

关于

用于django(1.8+)的完全简单的crontab驱动的作业调度。

设置

通过PIP安装:

pip install django-crontab

将其添加到django settings.py中已安装的应用程序中:

INSTALLED_APPS = (
    'django_crontab',
    ...
)

现在创建一个新方法,cron每5分钟执行一次,f.e.inmyapp/cron.py

def my_scheduled_job():
  pass

现在将其添加到您的设置中。py:

CRONJOBS = [
    ('*/5 * * * *', 'myapp.cron.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

显示此项目的当前活动工单:

python manage.py crontab show

删除所有定义的作业是直接的:

python manage.py crontab remove

配置

有很多设置变量来定制行为。每一个都带有应该适当匹配的默认值。如果没有,请随意改写。

cronjobs
  • 作业列表,每个作业定义为元组:

    • 格式1:
      1. 必需:cron计时(常用格式:http://en.wikipedia.org/wiki/Cron#Format
      2. 必需:方法的python模块路径
      3. 可选:特定于作业的后缀(例如,要重定向到文件/err,默认值为:'')
    • 格式2:
      1. 必需:cron计时(常用格式:http://en.wikipedia.org/wiki/Cron#Format
      2. 必需:方法的python模块路径
      3. 可选:方法的位置参数列表(默认值:[])
      4. 可选:方法的关键字参数dict(默认值:{})
      5. 可选:特定于作业的后缀(例如,要重定向到文件/err,默认值为:'')
  • 注意:每次以任何方式更改cronjobs时,运行“python manage.py crontab add”!

  • 默认值:[]

  • 示例:

    CRONJOBS = [
        ('*/5 * * * *', 'myapp.cron.my_scheduled_job'),
    
        # format 1
        ('0   0 1 * *', 'myapp.cron.my_scheduled_job', '>> /tmp/scheduled_job.log'),
    
        # format 2
        ('0   0 1 * *', 'myapp.cron.other_scheduled_job', ['myapp']),
        ('0   0 * * 0', 'django.core.management.call_command', ['dumpdata', 'auth'], {'indent': 4}, '> /home/john/backups/last_sunday_auth_backup.json'),
    ]
    
crontab锁定作业
  • 如果同一作业的旧实例仍在运行,则阻止启动作业
  • 默认值:false
  • 从0.5.0开始
crontab_可执行文件
  • 操作系统的crontab可执行文件的路径
  • 默认值:'/usr/bin/crontab'
crontab_django_项目名称
  • Django项目的名称,用于构建manage.py的路径路径,并通过注释在contrab中标记作业以供以后删除
  • 默认值是从Django_settings_module环境变量中读取的
crontab_django_manage_路径
  • manage.py文件的路径(包括manage.py本身,即'/home/john/web/manage.py')
  • 默认值是使用django_project_name生成
crontab_django_settings_模块
  • 指向设置模块的点式python路径,以使用
  • 默认值是环境变量中的常用值,不会被覆盖
  • 从0.6.0开始
crontab_python_可执行文件
  • 用于运行计划作业的python解释器可执行文件的路径
  • 默认使用用于添加作业的解释器可执行文件(通过“python manage.py crontab add”)
crontab_command_前缀
  • 在每项工作执行之前你需要做或声明的事情。环境变量的一个好点。
  • 默认值:''(空字符串)
  • 示例:“stage=production”
crontab_command_后缀
  • 在每项工作完成后你想做的事。
  • 默认值:''(空字符串)
  • 示例:“2>;&1”
crontab_注释
  • 用于标记要删除的添加的contab行,默认值包括项目名称以区分同一主机和用户上的多个项目
  • 默认值:“django crontab for”+crontab_django_project_name

贡献者

Arski Cinghiale Meric426 Justdoito0823烤鸭

常见问题解答

  • i正在使用此旧django版本(<;1.8),无法安装此软件包。我该怎么办? -是的,当然要更新django(!)或者-由于您似乎熟悉旧的、不受支持的版本,因此也请安装此软件包的旧版本(它支持django 1.3-1.7):

    pip install django-crontab==0.6.0
    
  • 它能在windows上工作吗? -编号

  • i在通过“crontab add”安装时收到“坏命令”或“cronfile中的错误”。怎么了? -可能是cron-time格式,可以有5到6个字段。检查您的系统是否支持6,或者只在cronjobs中定义5。(参见23)

许可证

麻省理工学院许可证,见许可证文件。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java<E extends Number>和<Number>之间有什么区别?   java如何将ActionScriptObject转换为ByteArray?   java如何平衡图形中的循环?   java为什么会抛出这个SAXParsexException?   使用JPA的java删除实体   java为什么要使用AccessibilityManager是有原因的。sInstance会导致内存泄漏吗?   java如何在Spring表单中隐藏选项?   java简单Hello World servlet在EclipseTomcat中给出错误404   java解决Web应用程序的heapdump问题(JSP+SpringMVC+JPAHIBERNATE)   SpringBoot如何为java联合生成graphql模式?   java是否将用户输入(从TextField)传递到另一个类?   java如何对集合执行clone()。newSetFromMap(地图)   java节点JS服务器处理10000个WebSocket   java为什么Thymeleaf International仅适用于ResourceBundleMessageSource   java如何使用build编译ResourceBundle类。xml文件   Java 2D游戏检查玩家是否触摸到另一个精灵   java无法从类<PowerMockRunner>转换为类<?扩展Runner>   从服务器搜索json数组的java搜索栏   java通过无知解决LazyInitializationException异常   java从线程更新JFreeChart