@@ -66,42 +66,37 @@ def publisher_process(
6666 # Create a subscriber.
6767 # Internally, subscribe will start a separate thread
6868 # to receive incoming published messages.
69- subscriber = EventSubscriber (event_manager .queue , callback = on_event )
70- subscriber .setup ()
71-
72- # Start a publisher process to demonstrate safe exchange
73- # of messages between processes.
74- publisher_shutdown_event = multiprocessing .Event ()
75- publisher = multiprocessing .Process (
76- target = publisher_process , args = (
77- publisher_shutdown_event , event_manager .queue , ),
78- )
79- publisher .start ()
80-
81- # Dispatch event from main process too
82- # to demonstrate safe exchange of messages
83- # between threads.
84- try :
85- while True :
86- event_manager .queue .publish (
87- request_id = '1234' ,
88- event_name = eventNames .WORK_STARTED ,
89- event_payload = {'time' : time .time ()},
90- publisher_id = 'eventing_pubsub_main' ,
91- )
92- except KeyboardInterrupt :
93- logger .info ('bye!!!' )
94- finally :
95- # Stop publisher process
96- publisher_shutdown_event .set ()
97- publisher .join ()
98- # Stop subscriber thread
99- subscriber .unsubscribe ()
100- logger .info (
101- 'Received {0} events from main thread, {1} events from another process, in {2} seconds' .format (
102- num_events_received [0 ], num_events_received [1 ], time .time (
103- ) - start_time ,
104- ),
69+ with EventSubscriber (event_manager .queue , callback = on_event ) as subscriber :
70+ # Start a publisher process to demonstrate safe exchange
71+ # of messages between processes.
72+ publisher_shutdown_event = multiprocessing .Event ()
73+ publisher = multiprocessing .Process (
74+ target = publisher_process , args = (
75+ publisher_shutdown_event , event_manager .queue , ),
10576 )
106- if subscriber :
107- subscriber .shutdown (do_unsubscribe = False )
77+ publisher .start ()
78+
79+ # Dispatch event from main process too
80+ # to demonstrate safe exchange of messages
81+ # between threads.
82+ try :
83+ while True :
84+ event_manager .queue .publish (
85+ request_id = '1234' ,
86+ event_name = eventNames .WORK_STARTED ,
87+ event_payload = {'time' : time .time ()},
88+ publisher_id = 'eventing_pubsub_main' ,
89+ )
90+ except KeyboardInterrupt :
91+ logger .info ('KBE!!!' )
92+ finally :
93+ # Stop publisher process
94+ publisher_shutdown_event .set ()
95+ publisher .join ()
96+ logger .info (
97+ 'Received {0} events from main thread, {1} events from another process, in {2} seconds' .format (
98+ num_events_received [0 ], num_events_received [1 ], time .time (
99+ ) - start_time ,
100+ ),
101+ )
102+ logger .info ('Done!!!' )
0 commit comments