用于创建和处理触发器的框架。
项目描述
关于
Django Triggers 是一个轻量级框架,允许应用的一部分生成触发器,而另一部分则对其做出响应。触发器是持久的,可以安排在稍后处理。
用法
通过子类化 Trigger
模型来定义触发器。 Trigger
定义了所有子触发器常见的数据结构和逻辑。子类只需要覆盖 _process
方法并将 typed
设置为一个唯一的slug。
设置
以下设置被使用
DJTRIGGERS_TRIES_BEFORE_WARNING
:在记录警告之前,任务可以重试的次数。默认为3。DJTRIGGERS_TRIES_BEFORE_ERROR
:在引发错误之前,任务可以重试的次数。默认为5。DJTRIGGERS_ASYNC_HANDLING
:是否应该异步处理(使用Celery)或不是。默认为False。DJTRIGGERS_CELERY_TASK_MAX_RETRIES
:触发器的Celery任务应该重试的次数。默认为0。DJTRIGGERS_TYPE_TO_TABLE
:触发器类型到数据库表的映射。用于清理脚本。默认为{}
。DJTRIGGERS_REDIS_URL
:用于锁的Redis实例的URL。DJTRIGGERS_LOGGERS
:django-triggers的单独日志配置。默认为()
。
示例
通用使用
from djtriggers.models import Trigger
class BreakfastTrigger(Trigger):
class Meta:
# There is no trigger specific data so make a proxy model.
# This ensures no additional db table is created.
proxy = True
typed = 'breakfast'
def _process(self, dictionary={}):
prepare_toast()
prepare_juice()
eat()
触发器特定数据
from djtriggers.models import Trigger
class PayBill(Trigger):
class Meta:
# We need a regular model as the trigger specific data needs a
# place to live in the db.
proxy = False
amount = models.IntegerField()
recipient = models.ForeignKey(User)
def _process(self, dictionary={}):
amount = self.amount
recipient = self.recipient
check_balance()
pay_bill(amount, recipient)
触发器处理
from .models import BreakfastTrigger
from .exceptions import ProcessError
trigger = BreakfastTrigger.objects.get(pk=1)
try:
trigger.process()
except ProcessError as e:
report_error(e)
延迟处理
from .models import BreakfastTrigger
trigger = BreakfastTrigger()
# Process 8 hours later (this can be any datetime)
trigger.process_after = now() + timedelta(hour=8)
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源代码分发
django-triggers-2.1.5.tar.gz (11.7 kB 查看哈希值)
构建分发
关闭
django-triggers-2.1.5.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 99c772e8f62b81a4fb9c0f47eac09b83fb506f06dc7ae9a42802c49ebfa22d2b |
|
MD5 | 7291388ab0fb13abc2fb1d1d7bc572cc |
|
BLAKE2b-256 | d6301e187e3669982464ebdc269faf2ef8d307dc8d3ea859d712fc4ca606c3be |
关闭
django_triggers-2.1.5-py2.py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 158af383c56ac55b22e11630570fec399ba166580ee20882493db6ca9d5fb357 |
|
MD5 | 505d9e1daf79d5a4d8bf66f9c4fd079f |
|
BLAKE2b-256 | 82f4baaa21abbfa3dce4e1f81bc08f2cfc9505f159e9123f91f781c2aec0b080 |