22import logging
33import pika
44
5- from models .entity .user_entity import User
6-
75logger = logging .getLogger (__name__ )
86
9- def publish_message (event : str , routing_key : str , new_user : User ):
7+
8+ def publish_message (event : str , routing_key : str , queue_name : str , ** kwargs ):
109 # Publish registration event to email service
11- try :
12- connection = pika .BlockingConnection (pika .ConnectionParameters ('localhost' ))
13- channel = connection .channel ()
14-
15- # Ensure exchange exists
16- channel .queue_declare (queue = 'email_queue' , durable = True )
17-
18- # Create message payload
19- message = {
20- "event" : event ,
21- "user_id" : str (new_user .id ),
22- "email" : new_user .email ,
23- "name" : new_user .name
24- }
25-
26- # Publish message
27- channel .basic_publish (
28- exchange = '' ,
29- routing_key = routing_key ,
30- body = json .dumps (message ),
31- properties = pika .BasicProperties (
32- delivery_mode = 2 , # make message persistent
33- content_type = 'application/json'
34- )
35- )
36-
37- connection .close ()
38-
39- except Exception as e :
40- logger .error (f"Failed to publish registration event: { str (e )} " )
41- # Don't raise exception - registration succeeded even if notification fails
10+ try :
11+ connection = pika .BlockingConnection (pika .ConnectionParameters ("localhost" ))
12+ channel = connection .channel ()
13+
14+ # Ensure exchange exists
15+ channel .queue_declare (queue = queue_name , durable = True )
16+
17+ # Create message payload
18+ message = {"event" : event , ** kwargs }
19+ # Publish message
20+ channel .basic_publish (
21+ exchange = "" ,
22+ routing_key = routing_key ,
23+ body = json .dumps (message ),
24+ properties = pika .BasicProperties (
25+ delivery_mode = 2 , # make message persistent
26+ content_type = "application/json" ,
27+ ),
28+ )
29+
30+ connection .close ()
31+
32+ except Exception as e :
33+ logger .error (f"Failed to publish registration event: { str (e )} " )
34+ # Don't raise exception - registration succeeded even if notification fails
0 commit comments