File tree Expand file tree Collapse file tree 1 file changed +24
-2
lines changed
Expand file tree Collapse file tree 1 file changed +24
-2
lines changed Original file line number Diff line number Diff line change 2020
2121from urllib .parse import urlparse , urlunparse
2222
23- from websocket import WebSocket , ABNF
23+ from websocket import WebSocket , ABNF , WebSocketException
2424
2525
2626class channels (IntEnum ):
@@ -31,6 +31,24 @@ class channels(IntEnum):
3131
3232
3333DEFAULT_HTTP_TIMEOUT = 10
34+ DEFAULT_RETRIES = 12
35+ DEFAULT_RETRY_INTERVAL = 5
36+
37+
38+ def sock_retry (func ):
39+ def wrapper (* args , ** kwargs ):
40+ attempt = 1
41+ while True :
42+ try :
43+ res = func (* args , ** kwargs )
44+ return res
45+ except WebSocketException as e :
46+ if attempt == DEFAULT_RETRIES :
47+ raise e
48+ attempt += 1
49+ time .sleep (DEFAULT_RETRY_INTERVAL )
50+
51+ return wrapper
3452
3553
3654class KubernetesWebSocketsClient :
@@ -56,10 +74,14 @@ def __init__(
5674 self .sock = WebSocket (
5775 sslopt = self .ssl_headers , skip_utf8_validation = False
5876 )
59- self .sock . connect (self .url , header = headers )
77+ self ._sock_connect (self .url , headers )
6078
6179 self ._connected = True
6280
81+ @sock_retry
82+ def _sock_connect (self , url , headers ):
83+ self .sock .connect (url , header = headers )
84+
6385 @property
6486 def url (self ):
6587 parsed_url = urlparse (self ._url )
You can’t perform that action at this time.
0 commit comments