Skip to content

Commit 0320bcf

Browse files
feature: adjusts retry strategies
1 parent 193a8b3 commit 0320bcf

File tree

4 files changed

+9
-7
lines changed

4 files changed

+9
-7
lines changed

src/api_to_dataframe/models/retainer.py

+5-4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import time
22
from enum import Enum
3+
34
from requests.exceptions import RequestException
45
from api_to_dataframe.utils.logger import log, LogLevel
56
from api_to_dataframe.utils import Constants
@@ -17,7 +18,7 @@ def wrapper(*args, **kwargs): # pylint: disable=inconsistent-return-statements
1718
while retry_number < args[0].retries:
1819
try:
1920
log(
20-
f"Trying for the {retry_number + 1} of {args[0].retries} retries. "
21+
f"Trying for the {retry_number} of {args[0].retries} retries. "
2122
f"Using {args[0].retry_strategy}",
2223
LogLevel.INFO,
2324
)
@@ -28,11 +29,11 @@ def wrapper(*args, **kwargs): # pylint: disable=inconsistent-return-statements
2829
if args[0].retry_strategy == Strategies.NO_RETRY_STRATEGY:
2930
raise e
3031
if args[0].retry_strategy == Strategies.LINEAR_RETRY_STRATEGY:
31-
time.sleep(args[0].initial_delay)
32+
time.sleep(args[0].delay)
3233
elif args[0].retry_strategy == Strategies.EXPONENTIAL_RETRY_STRATEGY:
33-
time.sleep(args[0].initial_delay * retry_number)
34+
time.sleep(args[0].delay * retry_number)
3435

35-
if retry_number == args[0].retries or retry_number == Constants.MAX_OF_RETRIES:
36+
if retry_number in (args[0].retries, Constants.MAX_OF_RETRIES):
3637
log(
3738
f"Failed after {retry_number} retries using {args[0].retry_strategy}",
3839
LogLevel.ERROR,
+1-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
class Constants:
2-
MAX_OF_RETRIES = 5
2+
MAX_OF_RETRIES = 5

tests/test_controller_client_builder.py

-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import pytest
22
import pandas as pd
3-
import requests
43

54
from api_to_dataframe import ClientBuilder
65

tests/test_models_retainer.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44

55
from api_to_dataframe import ClientBuilder, RetryStrategies
66

7+
# from api_to_dataframe.utils import Constants
8+
79

810
def test_linear_strategy():
911
endpoint = "https://api-to-dataframe/"
@@ -60,7 +62,7 @@ def test_exponential_strategy():
6062
client.get_api_data()
6163
except requests.exceptions.RequestException:
6264
end = time.time()
63-
assert end - start >= client.delay * 2**retry_number
65+
assert end - start >= client.delay * retry_number
6466
retry_number += 1
6567

6668
assert retry_number == max_retries

0 commit comments

Comments
 (0)