This document is for Kombu's development version, which can be significantly different from previous releases. Get the stable docs here: 5.3.
Amazon SQS Transport - kombu.transport.SQS
¶
Back-off policy¶
Back-off policy is using SQS visibility timeout mechanism altering the time difference between task retries.
The mechanism changes message specific visibility timeout
from queue Default visibility timeout
to policy configured timeout.
The number of retries is managed by SQS (specifically by the ApproximateReceiveCount
message attribute) and no further action is required by the user.
Configuring the queues and backoff policy:
broker_transport_options = {
'predefined_queues': {
'my-q': {
'url': 'https://ap-southeast-2.queue.amazonaws.com/123456/my-q',
'access_key_id': 'xxx',
'secret_access_key': 'xxx',
'backoff_policy': {1: 10, 2: 20, 3: 40, 4: 80, 5: 320, 6: 640},
'backoff_tasks': ['svc.tasks.tasks.task1']
}
}
}
backoff_policy
dictionary where key is number of retries, and value is delay seconds between retries (i.e
SQS visibility timeout)
backoff_tasks
list of task names to apply the above policy
The above policy:
Attempt |
Delay |
|
20 seconds |
|
40 seconds |
|
80 seconds |
|
320 seconds |
|
640 seconds |
Message Attributes¶
SQS supports sending message attributes along with the message body. To use this feature, you can pass a ‘message_attributes’ as keyword argument to basic_publish method.