chore(release): 0.6.0 #14
@@ -6,7 +6,7 @@ import selectors
|
||||
import socket
|
||||
import threading
|
||||
import time
|
||||
from typing import TYPE_CHECKING, Any
|
||||
from typing import TYPE_CHECKING, Any, Final
|
||||
|
||||
import yaml
|
||||
from judas_protocol import Category, ControlAction, Message
|
||||
@@ -21,6 +21,8 @@ if TYPE_CHECKING:
|
||||
|
||||
|
||||
class BackendServer:
|
||||
ACK_TIMEOUT: Final[float] = 5.0 # seconds
|
||||
|
||||
def __init__(self, host: str = "0.0.0.0", port: int = 3692) -> None:
|
||||
"""Initialize the backend server.
|
||||
|
||||
@@ -356,12 +358,13 @@ class BackendServer:
|
||||
|
||||
# check pending ACKs
|
||||
for client, msg, timestamp in self.pending_acks[:]:
|
||||
if time.time() - timestamp > 5: # 5 second timeout
|
||||
if time.time() - timestamp > self.ACK_TIMEOUT:
|
||||
self.logger.warning(
|
||||
f"ACK timeout for message {msg.id} to {client}, resending..."
|
||||
)
|
||||
self.send(client, msg)
|
||||
self.pending_acks.remove((client, msg, timestamp))
|
||||
|
||||
time.sleep(0.001) # prevent 100% CPU usage
|
||||
|
||||
except Exception as e:
|
||||
|
||||
Reference in New Issue
Block a user