add zmq server start WIP

This adds simple zmq server to listen. It is probably very wrong place to have it.
This commit is contained in:
Ondřej Samohel 2025-06-16 16:28:49 +02:00
parent 71408d33f6
commit 317e2bd905
No known key found for this signature in database
GPG key ID: 02376E18990A97C6
3 changed files with 49 additions and 0 deletions

View file

@ -0,0 +1,40 @@
"""Simple log server for Ayon Core Console Log.
Based on zeroMQ for communication.
"""
import asyncio
import threading
import zmq
from zmq.asyncio import Context, Poller
from loguru import logger
class LogServer:
"""Log server for Ayon Core Console Log."""
def __init__(self, port: int = 5555):
self.port = port
self.context = Context()
self.socket = self.context.socket(zmq.SUB)
self.socket.bind(f"tcp://*:{self.port}")
self.socket.subscribe("") # Subscribe to all messages
logger.info(f"Log server started on port {self.port}")
def start(self):
"""Start the log server."""
logger.info("Starting log server...")
threading.Thread(target=self._run, daemon=True).start()
def _run(self):
"""Run the log server in a separate thread."""
asyncio.run(self._serve())
async def _serve(self):
"""Serve log messages asynchronously."""
logger.info("Entering log server event loop...")
# This loop will run indefinitely, listening for log messages
# and printing them to the console.
while True:
_, message = await self.socket.recv_multipart()
logger.info(f"Received log message: {message.decode('utf8').strip()}")

View file

@ -1,6 +1,11 @@
import asyncio
import os
import time
from typing import Callable
from ayon_core.tools.console_log.log_server import LogServer
import zmq
import zmq.asyncio
from ayon_core.addon import AddonsManager, ITrayAddon, ITrayService
from ayon_core.tools.tray.webserver import (
@ -27,6 +32,8 @@ class TrayAddonsManager(AddonsManager):
self._tray_manager = tray_manager
self._webserver_manager = WebServerManager(find_free_port(), None)
self._log_server = LogServer()
self._log_server.start()
self.doubleclick_callbacks = {}
self.doubleclick_callback = None

View file

@ -10,6 +10,8 @@ pyblish-base = "^1.8.11"
speedcopy = "^2.1"
six = "^1.15"
qtawesome = "0.7.3"
pyzmq = "^27.0"
tornado = "^6.5.1"
[ayon.runtimeDependencies]
aiohttp-middlewares = "^2.0.0"