django的死简单crontab驱动的作业调度
django-crontab的Python项目详细描述
关于
用于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:
- 必需:cron计时(常用格式:http://en.wikipedia.org/wiki/Cron#Format)
- 必需:方法的python模块路径
- 可选:特定于作业的后缀(例如,要重定向到文件/err,默认值为:'')
- 格式2:
- 必需:cron计时(常用格式:http://en.wikipedia.org/wiki/Cron#Format)
- 必需:方法的python模块路径
- 可选:方法的位置参数列表(默认值:[])
- 可选:方法的关键字参数dict(默认值:{})
- 可选:特定于作业的后缀(例如,要重定向到文件/err,默认值为:'')
- 格式1:
注意:每次以任何方式更改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)
许可证
麻省理工学院许可证,见许可证文件。