@@ -35,75 +35,106 @@ def emit(self, event_type: str, data: Any) -> None:
3535 event_type: Type of event (e.g., "log")
3636 data: Event data
3737 """
38+ logger .debug (f"[CROSS_PROCESS_EMIT] Emitting event type: { event_type } " )
39+
3840 # Call local listeners immediately
41+ logger .debug (f"[CROSS_PROCESS_EMIT] Calling { len (self ._listeners )} local listeners" )
3942 super ().emit (event_type , data )
43+ logger .debug ("[CROSS_PROCESS_EMIT] Completed local listener calls" )
4044
4145 # Publish to cross-process subscribers
46+ logger .debug ("[CROSS_PROCESS_EMIT] Publishing to cross-process subscribers" )
4247 self ._publish_cross_process (event_type , data )
48+ logger .debug ("[CROSS_PROCESS_EMIT] Completed cross-process publish" )
4349
4450 def _publish_cross_process (self , event_type : str , data : Any ) -> None :
4551 """Publish event to cross-process subscribers via database."""
46- self ._db .publish_event (event_type , data , self ._process_id )
52+ logger .debug (f"[CROSS_PROCESS_PUBLISH] Publishing event { event_type } to database" )
53+ try :
54+ self ._db .publish_event (event_type , data , self ._process_id )
55+ logger .debug (f"[CROSS_PROCESS_PUBLISH] Successfully published event { event_type } to database" )
56+ except Exception as e :
57+ logger .error (f"[CROSS_PROCESS_PUBLISH] Failed to publish event { event_type } to database: { e } " )
4758
4859 def start_listening (self ) -> None :
4960 """Start listening for cross-process events."""
5061 if self ._running :
62+ logger .debug ("[CROSS_PROCESS_LISTEN] Already listening, skipping start" )
5163 return
5264
65+ logger .debug ("[CROSS_PROCESS_LISTEN] Starting cross-process event listening" )
5366 self ._running = True
5467 self ._start_database_listener ()
68+ logger .debug ("[CROSS_PROCESS_LISTEN] Started database listener thread" )
5569
5670 def stop_listening (self ) -> None :
5771 """Stop listening for cross-process events."""
72+ logger .debug ("[CROSS_PROCESS_LISTEN] Stopping cross-process event listening" )
5873 self ._running = False
5974 if self ._listener_thread and self ._listener_thread .is_alive ():
75+ logger .debug ("[CROSS_PROCESS_LISTEN] Waiting for listener thread to stop" )
6076 self ._listener_thread .join (timeout = 1 )
77+ logger .debug ("[CROSS_PROCESS_LISTEN] Listener thread stopped" )
6178
6279 def _start_database_listener (self ) -> None :
6380 """Start database-based event listener."""
6481
6582 def database_listener ():
83+ logger .debug ("[CROSS_PROCESS_LISTENER] Starting database listener loop" )
6684 last_cleanup = time .time ()
6785
6886 while self ._running :
6987 try :
7088 # Get unprocessed events from other processes
7189 events = self ._db .get_unprocessed_events (self ._process_id )
90+ if events :
91+ logger .debug (f"[CROSS_PROCESS_LISTENER] Found { len (events )} unprocessed events" )
7292
7393 for event in events :
7494 if not self ._running :
7595 break
7696
7797 try :
98+ logger .debug (
99+ f"[CROSS_PROCESS_LISTENER] Processing event { event ['event_id' ]} of type { event ['event_type' ]} "
100+ )
78101 # Handle the event
79102 self ._handle_cross_process_event (event ["event_type" ], event ["data" ])
103+ logger .debug (f"[CROSS_PROCESS_LISTENER] Successfully processed event { event ['event_id' ]} " )
80104
81105 # Mark as processed
82106 self ._db .mark_event_processed (event ["event_id" ])
107+ logger .debug (f"[CROSS_PROCESS_LISTENER] Marked event { event ['event_id' ]} as processed" )
83108
84109 except Exception as e :
85- logger .debug (f"Failed to process event { event ['event_id' ]} : { e } " )
110+ logger .debug (f"[CROSS_PROCESS_LISTENER] Failed to process event { event ['event_id' ]} : { e } " )
86111
87112 # Clean up old events every hour
88113 current_time = time .time ()
89114 if current_time - last_cleanup >= 3600 :
115+ logger .debug ("[CROSS_PROCESS_LISTENER] Cleaning up old events" )
90116 self ._db .cleanup_old_events ()
91117 last_cleanup = current_time
92118
93119 # Small sleep to prevent busy waiting
94120 time .sleep (0.1 )
95121
96122 except Exception as e :
97- logger .debug (f"Database listener error: { e } " )
123+ logger .debug (f"[CROSS_PROCESS_LISTENER] Database listener error: { e } " )
98124 time .sleep (1 )
99125
100126 self ._listener_thread = threading .Thread (target = database_listener , daemon = True )
101127 self ._listener_thread .start ()
102128
103129 def _handle_cross_process_event (self , event_type : str , data : Any ) -> None :
104130 """Handle events received from other processes."""
105- for listener in self ._listeners :
131+ logger .debug (f"[CROSS_PROCESS_HANDLE] Handling cross-process event type: { event_type } " )
132+ logger .debug (f"[CROSS_PROCESS_HANDLE] Calling { len (self ._listeners )} listeners" )
133+
134+ for i , listener in enumerate (self ._listeners ):
106135 try :
136+ logger .debug (f"[CROSS_PROCESS_HANDLE] Calling listener { i } " )
107137 listener (event_type , data )
138+ logger .debug (f"[CROSS_PROCESS_HANDLE] Successfully called listener { i } " )
108139 except Exception as e :
109- logger .debug (f"Cross-process event listener failed for { event_type } : { e } " )
140+ logger .debug (f"[CROSS_PROCESS_HANDLE] Cross-process event listener { i } failed for { event_type } : { e } " )
0 commit comments