zaqar/doc/source/user/notification_delivery_policy.rst
gecong1973 ef8631899e Add more backoff functions
This patch introduces more retry backoff function the delivery 
retry policy into Zaqar. It will work when Zaqar failed to send 
the notification to the subscriber. Users can define the retry 
backoff function in the options of subscription or metadata 
of queue.

Change-Id: I0bffd9249f8a0d466ecea1ac36d8adc37b742238
Implement: blueprint support-more-backoff-functions
2017-10-24 01:01:47 +00:00

2.7 KiB

The Notification Delivery Policy Guide

Support notification delivery policy in webhook type. It will work when the notification is sent from Zaqar to the subscriber failed. This guide shows how to use this feature:

Webhook

Note

You should make sure that the message notification is enabled. By default, the message_pipeline config option in [storage] section should be set like: message_pipeline = zaqar.notification.notifier

  1. Create the queue with _retry_policy metadata like this:
{
    '_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' and 'maximum_delay' mean delay time in seconds.
  • 'retry_backoff_function' mean name of retry backoff function. There will be a enum in Zaqar that contain all valid values. Zaqar now supports retry backoff function including 'linear', 'arithmetic','geometric' and 'exponential'.
  • 'minimum_delay_retries' and 'maximum_delay_retries' mean the number of retries with 'minimum_delay' or 'maximum_delay' delay time.

If value of retry_policy is empty dict, that Zaqar will use default value to those keys:

  • 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. Create a subscription with options like queue's metadata below. If user don't set the options, Zaqar will use the retry policy in queue's metadata. If user do it, Zaqar will use the retry policy in options by default, if user still want to use retry policy in queue's metadata, then can set the ignore_subscription_override = True.