使用django rq从django管理员提供计划的作业
django-rq-jobs的Python项目详细描述
使用Django管理员提供计划作业管理 Django-RQ
管理员屏幕截图
安装
确保你已经Django-RQ准备好了 在你做任何事之前跑。这个应用程序只是一个简单的管理员 管理计划任务和管理命令的插件。
使用pip install django-rq-jobs
安装包将django_rq_jobs添加到设置中已安装的应用程序。py:
INSTALLED_APPS=(# other apps"django_rq","django_rq_jobs",)
在settings.py中添加RQ_JOBS_MODULE。字符串或字符串的元组 指定保存作业的所有模块。任何有标记的东西 随着django rq的@jobdecorator将出现在管理员中。
# A singe module:RQ_JOBS_MODULE='myapp.tasks'# or with multiple modules:RQ_JOBS_MODULE=('myapp.tasks','anotherapp.tasks',)
运行python manage.py migrate创建作业模型。
打开django管理员,找到rq jobs scheduled job部分,然后 安排一些事情。
用你的最爱安排心跳python manage.py rqjobs。 调度程序。这可以是cron,heroku调度器或者其他任何东西 更喜欢。确保将心跳间隔设置为 明智的;通常5或10分钟就足够了,但要每分钟运行一次 如果你愿意的话。无论如何,作业的执行被推迟到rq。
注释
- 支持一次、每小时、每天、每周、每月、每季度和每年 预定任务。
- 有限运行调度:将任务的“重复”设置为最大值 你想要的重复次数。一旦计数器 达到零。默认为-1表示永恒。
- 参数是dict:{'one': 1, 'two': 2, 'three': 3}
- rq作业将尝试将作业链接到django rq中的队列任务状态。 通常这些工作报告的存在时间不比几分钟长。 除非他们失败。因此,如果您看到None处于rq状态, 这通常意味着一切顺利。
- 如果您有一段时间没有运行heartbeatmanage.py rqjobs,并且 错过了一些预定的作业,RQ作业将赶上 心跳。这样有限的跑步计划就不会受到影响。
调度管理命令
如果您想调度常规的django管理命令,那么这是最简单的 使用django的管理包装器添加它们。所以如果你想 安排“manage.py clearsessions”:
fromdjango.coreimportmanagement@jobdefclear_sessions():returnmanagement.call_command('clearsessions')
这将自动显示为“清除会话”在管理 接口。