OXIESEC PANEL
- Current Dir:
/
/
opt
/
alt
/
python311
/
lib
/
python3.11
/
site-packages
/
redis
Server IP: 2a02:4780:11:1594:0:ef5:22d7:a
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
01/09/2025 02:18:04 AM
rwxr-xr-x
📄
__init__.py
1.71 KB
05/14/2024 03:18:32 PM
rw-r--r--
📁
__pycache__
-
05/14/2024 03:18:32 PM
rwxr-xr-x
📄
backoff.py
2.61 KB
05/14/2024 03:18:32 PM
rw-r--r--
📄
client.py
71.8 KB
05/14/2024 03:18:32 PM
rw-r--r--
📄
cluster.py
75.87 KB
05/14/2024 03:18:32 PM
rw-r--r--
📁
commands
-
05/14/2024 03:18:32 PM
rwxr-xr-x
📄
connection.py
59.14 KB
05/14/2024 03:18:32 PM
rw-r--r--
📄
crc.py
670 bytes
05/14/2024 03:18:32 PM
rw-r--r--
📄
exceptions.py
4.54 KB
05/14/2024 03:18:32 PM
rw-r--r--
📄
lock.py
10.76 KB
05/14/2024 03:18:32 PM
rw-r--r--
📄
ocsp.py
11.18 KB
05/14/2024 03:18:32 PM
rw-r--r--
📄
retry.py
1.7 KB
05/14/2024 03:18:32 PM
rw-r--r--
📄
sentinel.py
12.4 KB
05/14/2024 03:18:32 PM
rw-r--r--
📄
utils.py
1.51 KB
05/14/2024 03:18:32 PM
rw-r--r--
Editing: retry.py
Close
import socket from time import sleep from redis.exceptions import ConnectionError, TimeoutError class Retry: """Retry a specific number of times after a failure""" def __init__( self, backoff, retries, supported_errors=(ConnectionError, TimeoutError, socket.timeout), ): """ Initialize a `Retry` object with a `Backoff` object that retries a maximum of `retries` times. You can specify the types of supported errors which trigger a retry with the `supported_errors` parameter. """ self._backoff = backoff self._retries = retries self._supported_errors = supported_errors def update_supported_erros(self, specified_errors: list): """ Updates the supported errors with the specified error types """ self._supported_errors = tuple( set(self._supported_errors + tuple(specified_errors)) ) def call_with_retry(self, do, fail): """ Execute an operation that might fail and returns its result, or raise the exception that was thrown depending on the `Backoff` object. `do`: the operation to call. Expects no argument. `fail`: the failure handler, expects the last error that was thrown """ self._backoff.reset() failures = 0 while True: try: return do() except self._supported_errors as error: failures += 1 fail(error) if failures > self._retries: raise error backoff = self._backoff.compute(failures) if backoff > 0: sleep(backoff)