Django的简单、通用的cronlike job runner服务
bronski的Python项目详细描述
Django的beat服务器,具有类似cron的语法
Bronski允许您使用Django模型配置周期性函数调用。在
它非常适合作为一个任务“击败”服务器,类似于芹菜殴打。在
安装
$ pip install bronski
设置
在你的INSTALLED_APPS
这只需要启用管理命令。在
在在您自己的应用程序中创建继承自bronski.models.CrontabBase
在创建和应用迁移:
^{pr2}$ 在在“设置”中指定模型
CRONTAB_MODEL="myapp.MyCronModel"
在启动beat服务器:
$ ./manage.py bronski
在
每分钟bronski服务都会扫描模型中是否有启用的作业 已经59秒没跑了。然后它会检查每个 crontab定义与下一分钟匹配。在
对于匹配的作业记录,将调用它们的run方法。违约 run方法将:
- 通过调用self.get_function()
- 通过调用self.get_kwargs()解析要使用的kwargs
- 使用kwargs调用函数。在
{4$enjobs可以覆盖您的自定义队列}:
classJobs(CrontabBase):defrun(self):func=self.get_function()kwargs=self.get_kwargs()# Celery task API:func.delay(**kwargs)# Dramatiq actor API:func.send(**kwargs)
- 项目
标签: