跳转到主要内容

为Django提供的简单、通用的cron-like作业运行服务

项目描述

https://badge.fury.io/py/bronski.svg https://img.shields.io/pypi/pyversions/bronski.svg https://github.com/uptick/bronski/workflows/Test/badge.svg

一个Django的cron-like语法节拍服务器

Bronski允许您使用Django模型配置周期性函数调用。

它非常适合作为任务“节拍”服务器,类似于celery-beat。

安装

$ pip install bronski

设置

  1. 将‘bronski’添加到您的INSTALLED_APPS

    这只是为了启用管理命令。

  2. 在您的应用中创建一个继承自bronski.models.CrontabBase的模型

  3. 创建并应用迁移

    $ manage.py makemigrations
    $ manage.py migrate
  4. 在设置中指定您的模型

    CRONTAB_MODEL = "myapp.MyCronModel"
  5. 启动您的节拍服务器

    $ ./manage.py bronski

每分钟,bronski服务将扫描模型,查找在过去59秒内未运行过的已启用作业。然后它会检查每个作业,看其crontab定义是否与下一分钟匹配。

对于匹配的作业记录,将调用其run方法。默认的run方法将

  • 通过调用self.get_function()获取指定的函数

  • 通过调用self.get_kwargs()解析要使用的kwargs

  • 使用kwargs调用函数。

您可以在自定义模型中覆盖run,例如,排队作业

class Jobs(CrontabBase):

    def run(self):
        func = self.get_function()
        kwargs = self.get_kwargs()

        # Celery task API:
        func.delay(**kwargs)
        # Dramatiq actor API:
        func.send(**kwargs)

项目详情


下载文件

下载您平台上的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

bronski-0.4.0.tar.gz (5.1 kB 查看哈希)

上传时间

构建分布

bronski-0.4.0-py3-none-any.whl (5.6 kB 查看哈希)

上传时间 Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面