Skip to content

Commit fb9be2f

Browse files
fix: SSE error handling (#86)
* fix: SSE error handling * fix: black formatting
1 parent 99e3004 commit fb9be2f

File tree

1 file changed

+13
-7
lines changed

1 file changed

+13
-7
lines changed

devcycle_python_sdk/managers/sse_manager.py

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,12 @@
22

33
import ld_eventsource
44
import ld_eventsource.actions
5+
import logging
56
import ld_eventsource.config
67
from typing import Callable
78

9+
logger = logging.getLogger(__name__)
10+
811

912
class SSEManager:
1013
def __init__(
@@ -31,13 +34,16 @@ def read_events(
3134
handle_message: Callable[[ld_eventsource.actions.Event], None],
3235
):
3336
self.client.start()
34-
for event in self.client.all:
35-
if isinstance(event, ld_eventsource.actions.Start):
36-
handle_state(event)
37-
elif isinstance(event, ld_eventsource.actions.Fault):
38-
handle_error(event)
39-
elif isinstance(event, ld_eventsource.actions.Event):
40-
handle_message(event)
37+
try:
38+
for event in self.client.all:
39+
if isinstance(event, ld_eventsource.actions.Start):
40+
handle_state(event)
41+
elif isinstance(event, ld_eventsource.actions.Fault):
42+
handle_error(event)
43+
elif isinstance(event, ld_eventsource.actions.Event):
44+
handle_message(event)
45+
except Exception as e:
46+
logger.exception(f"DevCycle: failed to read SSE message: {e}")
4147

4248
def update(self, config: dict):
4349
if self.use_new_config(config["sse"]):

0 commit comments

Comments
 (0)