[Update] mainloop: Improve receiver loop to handle empty input and add stop message

[Update] osc: Refactor OSC query service initialization to run in a separate thread
This commit is contained in:
misyaguziya
2025-09-11 23:11:39 +09:00
parent 7bed19c81f
commit 4e53584cff
2 changed files with 24 additions and 16 deletions

View File

@@ -358,8 +358,11 @@ class Main:
self.main_loop = True self.main_loop = True
def receiver(self) -> None: def receiver(self) -> None:
while True: while self.main_loop:
received_data = sys.stdin.readline().strip() received_data = sys.stdin.readline().strip()
if not received_data:
time.sleep(0.1)
continue
received_data = json.loads(received_data) received_data = json.loads(received_data)
if received_data: if received_data:
@@ -441,11 +444,13 @@ if __name__ == "__main__":
main.start() main.start()
case "test": case "test":
for _ in range(100): endpoint = "/set/enable/translation"
time.sleep(0.5)
endpoint = "/get/data/mic_host_list"
result, status = main.handleRequest(endpoint) result, status = main.handleRequest(endpoint)
printResponse(status, endpoint, result) printResponse(status, endpoint, result)
endpoint = "/run/send_message_box"
data = {"id":"123456", "message":"テスト"}
result, status = main.handleRequest(endpoint, data)
printResponse(status, endpoint, result)
case "test_all": case "test_all":
import time import time
@@ -648,3 +653,4 @@ if __name__ == "__main__":
result, status = main.handleRequest(endpoint, data) result, status = main.handleRequest(endpoint, data)
printResponse(status, endpoint, result) printResponse(status, endpoint, result)
time.sleep(0.5) time.sleep(0.5)
main.stop()

View File

@@ -118,6 +118,7 @@ class OSCHandler:
self.osc_server = osc_server.ThreadingOSCUDPServer((self.osc_server_ip_address, self.osc_server_port), osc_dispatcher) self.osc_server = osc_server.ThreadingOSCUDPServer((self.osc_server_ip_address, self.osc_server_port), osc_dispatcher)
Thread(target=self.oscServerServe, daemon=True).start() Thread(target=self.oscServerServe, daemon=True).start()
def startOSCQueryService():
while True: while True:
try: try:
self.osc_query_service = OSCQueryService(self.osc_query_service_name, self.http_port, self.osc_server_port) self.osc_query_service = OSCQueryService(self.osc_query_service_name, self.http_port, self.osc_server_port)
@@ -127,6 +128,7 @@ class OSCHandler:
except Exception: except Exception:
errorLogging() errorLogging()
sleep(1) sleep(1)
Thread(target=startOSCQueryService, daemon=True).start()
def oscServerServe(self) -> None: def oscServerServe(self) -> None:
# ポーリング間隔を長くして2秒から10秒にCPUの使用率を削減 # ポーリング間隔を長くして2秒から10秒にCPUの使用率を削減