通知传递策略指南

支持在 webhook 类型中使用通知传递策略。当从 Zaqar 向订阅者发送通知失败时,它将生效。本指南展示了如何使用此功能

Webhook

注意

您应该确保已启用消息通知。默认情况下,[storage] 部分中的 message_pipeline 配置选项应设置为:message_pipeline = zaqar.notification.notifier

  1. 创建带有 _retry_policy 元数据的队列,如下所示

{
    "_retry_policy": {
        "retries_with_no_delay": "<Integer value, optional>",
        "minimum_delay_retries": "<Integer value, optional>",
        "minimum_delay": "<Interger value, optional>",
        "maximum_delay": "<Interger value, optional>",
        "maximum_delay_retries": "<Integer value, optional>",
        "retry_backoff_function": "<String value, optional>",
        "ignore_subscription_override": "<Bool value, optional>"}
}
  • ‘minimum_delay’ 和 ‘maximum_delay’ 表示秒数中的延迟时间。

  • ‘retry_backoff_function’ 表示重试退避函数的名称。Zaqar 将包含所有有效值的枚举。Zaqar 现在支持重试退避函数,包括 ‘linear’(线性)、‘arithmetic’(算术)、‘geometric’(几何)和 ‘exponential’(指数)。

  • ‘minimum_delay_retries’ 和 ‘maximum_delay_retries’ 表示使用 ‘minimum_delay’ 或 ‘maximum_delay’ 延迟时间进行重试的次数。

如果 retry_policy 的值为一个空字典,那么 Zaqar 将对这些键使用默认值

  • retries_with_no_delay=3

  • minimum_delay_retries=3

  • minimum_delay=5

  • maximum_delay=30

  • maximum_delay_retries=3

  • retry_backoff_function=linear

  • ignore_subscription_override=False

  1. 使用类似于队列元数据的选项创建订阅。如果用户未设置这些选项,Zaqar 将使用队列元数据中的重试策略。如果用户设置了选项,Zaqar 将默认使用选项中的重试策略。如果用户仍然希望使用队列元数据中的重试策略,则可以将 ignore_subscription_override = True。