issues
search
Azure
/
azure-uamqp-python
AMQP 1.0 client library for Python
MIT License
56
stars
48
forks
source link
[pyproto] error handling and built-in retry strategy
#290
Closed
yunhaoling
closed
2 years ago
yunhaoling
commented
2 years ago
Proposal:
error condition code driven retry mechanism
strategy for different layers failures:
Transport layer: wrapped in AMQPConnection, reestablish every layer and retry
AMQP connection: connection close, reestablish every layer and retry
AMQP session: session end, reestablish session/link/client and retry
AMQP link: link detach, reestablish the link/client and retry
AMQP client level: send fail/ receive fail, no need to reestablish, retry the operation
Other errors: no close, no retry, just raise(?)
errors/retry are handled at the client layer
features need to be retried:
send
receive
mgmt request
custom error policy for EH and SB, client takes:
1) general retry configs, retry_total/max_backoff/etc. (some of azure-core configs)
2) a map in which key is error condition code, value is the backoff time
3) a list of non retryable error code
Proposal: