Developer documentation for Agave, Abaco, and other TACC APIs
In some situations, Agave may be unable to publish a specific notification. When this happens, Agave will immediately retry the notification 5 times in an attempt to deliver it successfully. When delivery fails for a 5th time, the notification is abandoned. If your application requires a more tenacious or methodical approach to retry delivery, you may provide a notification policy.
Example notification subscription object with custom retry policy:
{
"url" : "$REQUEST_BIN?path=${PATH}&system=${SYSTEM}&event=${EVENT}",
"event" : "*",
"persistent": true,
"policy": {
"retryStrategy": "IMMEDIATE",
"retryLimit": 20,
"retryRate": 5,
"retryDelay": 0,
"saveOnFailure": true
}
}
Name | Type | Description |
---|---|---|
retryStrategy | NONE, IMMEDIATE, DELAYED, EXPONENTIAL | The retry strategy to employ. Default is IMMEDIATE |
retryRate | int; 0:86400 | The frequency with which attempts should be made to deliver the message. |
retryLimit | int; 0:1440 | The maximum attempts that should be made to delivery the message. |
retryDelay | int; 0:86400 | The initial delay between the initial delivery attempt and the first retry. |
saveOnFailure | boolean | Whether the failed message should be persisted if unable to be delivered within the retryLimit |
Notification retry policies describe the strategy, frequency, delay, limit, and persistence to be applied when publishing an individual event for a given notification. The example above is our previous example with a notification policy included.
By providing a retry policy where saveOnFailure
is true, failed messages will be persisted and made available for querying at a later time. This is a great way to handled missed work due to a server failure, maintenance downtime, etc.
To query failed attempts for a specific notification, enter the following CLI command:
notifications-list-failures 229681451607921126-8e1831906a8e-0001-042"
Show cURL
curl -sk -H "Authorization: Bearer $ACCESS_TOKEN" \ https://$API_BASE_URL/notifications/$API_VERSION/229681451607921126-8e1831906a8e-0001-042"/attempts
A list of notification attempts will be returned.
Show response
[ { "id" : "229681451607921126-8e1831906a8e-0001-042", "url" : "https://httpbin.org/status/500", "event" : "SENT", "associatedUuid" : "5833036796741676570-b0b0b0bb0b-0001-011", "startTime" : "2016-06-19T22:21:02.266-05:00", "endTime" : "2016-06-19T22:21:03.268-05:00", "response" : { "code" : 500, "message" : "" }, "_links" : { "self" : { "href" : "https://$API_BASE_URL/notifications/$API_VERSION/229123105859441126-8e1831906a8e-0001-011/attempts/229681451607921126-8e1831906a8e-0001-042" }, "notification" : { "href" : "https://$API_BASE_URL/notifications/$API_VERSION/5833036796741676570-b0b0b0bb0b-0001-011" }, "profile" : { "href" : "https://$API_BASE_URL/profiles/$API_VERSION/ipcservices" } } } ]
Note: There is no way to save successful notification deliveries.