27 lines
675 B
Python
27 lines
675 B
Python
import json
|
|
|
|
from kafka import KafkaProducer
|
|
from shared.events import BOOTSTRAP_SERVERS, make_event, TOPIC_ORDERS
|
|
|
|
class OrderProducer:
|
|
def __init__(self):
|
|
self.producer = KafkaProducer(
|
|
bootstrap_servers=BOOTSTRAP_SERVERS,
|
|
key_serializer= str.encode, # convertir en bytes "3" -> b"3"
|
|
value_serializer=lambda v: json.dumps(v).encode(),
|
|
acks= "all"
|
|
)
|
|
|
|
def publish_order_created(self, order: dict):
|
|
event = make_event(
|
|
"order_created",
|
|
order
|
|
)
|
|
|
|
self.producer.send(
|
|
TOPIC_ORDERS,
|
|
value=event
|
|
)
|
|
|
|
self.producer.flush()
|