import asyncio, sys import utils, env_var class Producer: def __init__(self, host, port): self.host = host self.port = port async def send(self, topic, content): writer = None try: reader, writer = await asyncio.open_connection(self.host, self.port) message = { "action": "produce", "topic": topic, "content": content } await utils.send_json(writer, message) response = await utils.receive_json(reader) if response and response.get("status") == "OK": print(f"[SUCCES] Message enregistré à l'offset {response.get('offset') + 1}.") else: print("[ERREUR] Le Broker a renvoyé uyne réponse invalide.") except ConnectionError: print("[ERREUR] Le Broker est injoignable.") except Exception as error: print(f"[ERREUR] Une erreur est survenue : {error}") finally: if writer: writer.close() await writer.wait_closed() if __name__ == "__main__": if len(sys.argv) < 3: print("Usage: python producer.py ") sys.exit(1) topic_name = sys.argv[1] message_content = " ".join(sys.argv[2:]) producer = Producer(env_var.HOST, env_var.PORT) asyncio.run(producer.send(topic_name, message_content))