| class BaseRetryBackoff: | |
| def delay_amount(self, context): | |
| """Calculate how long we should delay before retrying. | |
| :type context: RetryContext | |
| """ | |
| raise NotImplementedError("delay_amount") | |
| class BaseRetryableChecker: | |
| """Base class for determining if a retry should happen. | |
| This base class checks for specific retryable conditions. | |
| A single retryable checker doesn't necessarily indicate a retry | |
| will happen. It's up to the ``RetryPolicy`` to use its | |
| ``BaseRetryableCheckers`` to make the final decision on whether a retry | |
| should happen. | |
| """ | |
| def is_retryable(self, context): | |
| """Returns True if retryable, False if not. | |
| :type context: RetryContext | |
| """ | |
| raise NotImplementedError("is_retryable") | |