feat: Semaine 9

This commit is contained in:
gauvainboiche
2026-05-15 16:24:56 +02:00
parent 3315cb2336
commit ce1f0e513a
108 changed files with 3150 additions and 0 deletions
@@ -0,0 +1,47 @@
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 <topic> <message>")
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))