Grundsätzlich versuche ich, die Lebensdauer meiner ServiceBusSender-Verbindung zu verlängern. Im Moment wende ich die Ping-Technik an:
Code: Select all
if time.time()-last_ping_time >= 200:
logging.debug(f"trying to ping service bus {QUEUE_DATA['WorkersName']}")
trash_message = ServiceBusMessage(b"")
trash_message.application_properties = {b"SiteEnv":b"trash"}
sender.send_messages(trash_message)
last_ping_time=time.time()
logging.debug("pinged service bus")
UPD: Im Laufe des Tages habe ich verstanden, dass keep_alive eine Art Ping-Mechanismus unter der Haube ist, aber das Problem bleibt bestehen: Kann ich es so verwenden? und meinen Ping-Mechanismus entfernen, damit die Verbindung nicht unterbrochen wird?
Code: Select all
sender=ServiceBusSender._from_connection_string(topic_name="SOME_TOPIC_NAME",
conn_str="SOME_CONNECTION_STRING",
transport_type=TransportType.AmqpOverWebsocket,
keep_alive=200)
UPD 3: Ich habe die Protokolle meiner App untersucht. Wie Sie sehen können, wurden Empfänger und Absender initiiert. Basierend auf der Zeit der Protokolle stellt sich die Frage: Warum könnten Sender und Empfänger lange Zeit inaktiv sein, bevor die ersten Anfragen gestellt werden, aber nach der ersten Anfrage wird die Verbindung nach 15 Minuten mit dem ConnectionResetError geschlossen? Wie kann ich die Verbindung zwischen Sender und Empfänger über die gesamte Laufzeit des Programms aufrechterhalten, ohne es mit Nachrichten anzupingen?
Code: Select all
2025-01-02 22:07:20,523 - DEBUG - got bool_launch_service_bus True so launching service bus
2025-01-02 22:07:20,523 - DEBUG - Launch time: 02/01/2025 22:07:20
2025-01-02 22:07:21,388 - INFO - RECEIVER: initiation was successful
2025-01-02 22:07:21,400 - INFO - SENDER: initiation was successful
2025-01-02 22:34:30,996 - DEBUG - Received request
2025-01-02 22:34:30,997 - DEBUG - MessageId: id - CorrelationId id:
2025-01-02 22:34:30,997 - DEBUG - Trying to call for CorrelationId: id
2025-01-02 22:34:30,997 - INFO - executing func()
2025-01-02 22:34:31,204 - DEBUG - Finished with CorrelationId: id time: 0.2070004940032959
2025-01-02 22:34:31,694 - DEBUG - full response creation time for id: 0.6970000267028809
2025-01-02 22:34:32,626 - INFO - finished id
2025-01-02 22:35:30,591 - INFO - RECEIVER: message with id: id complete by distributive service
2025-01-02 22:50:38,572 - DEBUG - Transport read failed: ConnectionResetError(10054, 'An existing connection was forcibly closed by the remote host', None, 10054, None)