6
6
from .core .httprequest import HttpRequest
7
7
from .core .injectionrequestfactory import InjectionRequestFactory
8
8
from .core .sendvalidator import SendValidator
9
+ from .core .retryhandler import RetryHandler
10
+ from .retrysettings import RetrySettings
9
11
from .message .basicmessage import BasicMessage
10
12
from .message .bulkmessage import BulkMessage
11
13
from .proxy import Proxy
@@ -32,6 +34,7 @@ def __init__(self, server_id: int, api_key: str, proxy: Proxy = None):
32
34
self ._api_key = api_key
33
35
self ._http_proxy = proxy
34
36
self ._request_timeout = 120
37
+ self ._number_of_retries = 0
35
38
36
39
@property
37
40
def __endpoint (self ):
@@ -69,6 +72,14 @@ def request_timeout(self, timeout: int):
69
72
"""
70
73
self ._request_timeout = timeout
71
74
75
+ @property
76
+ def number_of_retries (self ):
77
+ return self ._number_of_retries
78
+
79
+ @number_of_retries .setter
80
+ def number_of_retries (self , retries : int ):
81
+ self ._number_of_retries = retries
82
+
72
83
def __build_http_request (self ):
73
84
"""
74
85
Build the HttpRequest. Will add the proxy, if set
@@ -111,7 +122,8 @@ def __send_basic_message(self, message: BasicMessage):
111
122
body = req_factory .generate_request (message )
112
123
113
124
request = self .__build_http_request ()
114
- result = request .send_request (body )
125
+ retry_handler = RetryHandler (request , RetrySettings (self .number_of_retries ))
126
+ result = retry_handler .send (body )
115
127
return result
116
128
117
129
def __send_bulk_message (self , message : BulkMessage ):
@@ -130,7 +142,8 @@ def __send_bulk_message(self, message: BulkMessage):
130
142
body = req_factory .generate_request (message )
131
143
132
144
request = self .__build_http_request ()
133
- result = request .send_request (body )
145
+ retry_handler = RetryHandler (request , RetrySettings (self .number_of_retries ))
146
+ result = retry_handler .send (body )
134
147
return result
135
148
136
149
def send_async (self , message : BasicMessage , on_success , on_error ):
0 commit comments