mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-24 21:04:40 +01:00
✨ 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:
parent
71408d33f6
commit
317e2bd905
3 changed files with 49 additions and 0 deletions
40
client/ayon_core/tools/console_log/log_server.py
Normal file
40
client/ayon_core/tools/console_log/log_server.py
Normal 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()}")
|
||||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue