Showing
1 changed file
with
14 additions
and
2 deletions
| 1 | 1 | from openprocurement_client.client import Client |
| 2 | 2 | from openprocurement_client.utils import get_tender_id_by_uaid |
| 3 | 3 | from openprocurement_client.exceptions import IdNotFound |
| 4 | +from restkit.errors import RequestFailed | |
| 5 | +from retrying import retry | |
| 6 | + | |
| 7 | + | |
| 8 | +def retry_if_request_failed(exception): | |
| 9 | + return isinstance(exception, RequestFailed) | |
| 10 | + | |
| 11 | + | |
| 12 | +class StableClient(Client): | |
| 13 | + @retry(stop_max_attempt_number=100, wait_random_min=500, wait_random_max=4000, retry_on_exception=retry_if_request_failed) | |
| 14 | + def request(self, *args, **kwargs): | |
| 15 | + return super(StableClient, self).request(*args, **kwargs) | |
| 4 | 16 | |
| 5 | 17 | |
| 6 | 18 | def prepare_api_wrapper(key, host_url, api_version): |
| 7 | - return Client(key, host_url, api_version) | |
| 19 | + return StableClient(key, host_url, api_version) | |
| 20 | + | |
| 8 | 21 | |
| 9 | 22 | def get_complaint_internal_id(tender, complaintID): |
| 10 | 23 | try: |
| ... | ... | @@ -21,4 +34,3 @@ def get_complaint_internal_id(tender, complaintID): |
| 21 | 34 | except AttributeError: |
| 22 | 35 | pass |
| 23 | 36 | raise IdNotFound |
| 24 | - | ... | ... |
Please
register
or
login
to post a comment