try with nng
This commit is contained in:
@@ -1,5 +1,7 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
import asyncio
|
import asyncio
|
||||||
|
import pynng
|
||||||
|
#asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
|
||||||
from collections import defaultdict
|
from collections import defaultdict
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
@@ -56,7 +58,7 @@ from starlette.middleware.base import BaseHTTPMiddleware
|
|||||||
# ui.html("<h2>Uploader tool</h2>")
|
# ui.html("<h2>Uploader tool</h2>")
|
||||||
# ui.button('Choose file', on_click=pick_file, icon='folder')
|
# ui.button('Choose file', on_click=pick_file, icon='folder')
|
||||||
|
|
||||||
SOCKET_PATH = 'tcp://localhost:9975'
|
SOCKET_PATH = 'tcp://localhost:9976'
|
||||||
|
|
||||||
EXPORT_PATH = Path("./test/export")
|
EXPORT_PATH = Path("./test/export")
|
||||||
PROCESS_PATH = Path("./test/to_process")
|
PROCESS_PATH = Path("./test/to_process")
|
||||||
@@ -83,7 +85,8 @@ DELETE_FILES_ON_UPLOAD = False
|
|||||||
rqst = None
|
rqst = None
|
||||||
|
|
||||||
|
|
||||||
use_zmq = True
|
use_zmq = False
|
||||||
|
use_nng = True
|
||||||
loaded_files: dict = {}
|
loaded_files: dict = {}
|
||||||
loaded_series = defaultdict(list)
|
loaded_series = defaultdict(list)
|
||||||
loaded_series_data = {}
|
loaded_series_data = {}
|
||||||
@@ -91,6 +94,7 @@ uploaded_files: dict = {}
|
|||||||
duplicate_series = set()
|
duplicate_series = set()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if use_zmq:
|
if use_zmq:
|
||||||
context = zmq.asyncio.Context()
|
context = zmq.asyncio.Context()
|
||||||
socket = context.socket(zmq.PULL)
|
socket = context.socket(zmq.PULL)
|
||||||
@@ -138,6 +142,38 @@ if use_zmq:
|
|||||||
case _:
|
case _:
|
||||||
logger.error("invalid message")
|
logger.error("invalid message")
|
||||||
|
|
||||||
|
if use_nng:
|
||||||
|
async def read_nng_messages():
|
||||||
|
print("start nng")
|
||||||
|
try:
|
||||||
|
with pynng.Pair0(listen=SOCKET_PATH) as sub:
|
||||||
|
#sub.subscribe('')
|
||||||
|
while not app.is_stopped:
|
||||||
|
msg = await sub.arecv_msg()
|
||||||
|
data = msg.bytes.decode()
|
||||||
|
logger.debug(f'Received msg {data}')
|
||||||
|
match data:
|
||||||
|
case "loaded":
|
||||||
|
for client in Client.instances.values():
|
||||||
|
if not client.has_socket_connection:
|
||||||
|
continue
|
||||||
|
with client:
|
||||||
|
ui.notify("Export done", color='positive')
|
||||||
|
global REFRESH_TRIGGERED
|
||||||
|
REFRESH_TRIGGERED = True
|
||||||
|
logger.debug("loaded")
|
||||||
|
case _:
|
||||||
|
logger.error("invalid message")
|
||||||
|
except pynng.exceptions.AddressInUse:
|
||||||
|
logger.debug("Address in use")
|
||||||
|
with pynng.Pair0(dial=SOCKET_PATH) as sub:
|
||||||
|
await sub.asend(b"loaded")
|
||||||
|
sys.exit(0)
|
||||||
|
|
||||||
|
#asyncio.create_task(read_nng_messages())
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
anonymizer = Anonymizer(ANON_PATH)
|
anonymizer = Anonymizer(ANON_PATH)
|
||||||
|
|
||||||
async def upload_files_start(progress, upload_queue):
|
async def upload_files_start(progress, upload_queue):
|
||||||
@@ -547,6 +583,7 @@ def main_page():
|
|||||||
|
|
||||||
with ui.expansion('Extra', icon='build').classes('w-full'):
|
with ui.expansion('Extra', icon='build').classes('w-full'):
|
||||||
ui.button("Load files", on_click=partial(load_files_start, anon_progress, queue))
|
ui.button("Load files", on_click=partial(load_files_start, anon_progress, queue))
|
||||||
|
ui.button("Load files from folder", on_click=partial(load_files_start, anon_progress, queue))
|
||||||
ui.button("Reload anon", on_click=partial(reload_anonymized_start, anon_progress, queue))
|
ui.button("Reload anon", on_click=partial(reload_anonymized_start, anon_progress, queue))
|
||||||
|
|
||||||
with ui.expansion('File status', icon='view_list').classes('w-full'):
|
with ui.expansion('File status', icon='view_list').classes('w-full'):
|
||||||
@@ -583,6 +620,8 @@ if __name__ in {"__main__", "__mp_main__"}:
|
|||||||
|
|
||||||
if use_zmq:
|
if use_zmq:
|
||||||
app.on_startup(read_loop)
|
app.on_startup(read_loop)
|
||||||
|
if use_nng:
|
||||||
|
app.on_startup(read_nng_messages)
|
||||||
|
|
||||||
ui.run(storage_secret="123456", reload=False, show=False)
|
ui.run(storage_secret="123456", reload=False, show=False)
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,6 @@
|
|||||||
|
import pynng
|
||||||
|
|
||||||
|
with pynng.Pair0(listen='tcp://127.0.0.1:54321') as s1:
|
||||||
|
|
||||||
|
with pynng.Pair0(listen='tcp://127.0.0.1:54321') as s2:
|
||||||
|
pass
|
||||||
Reference in New Issue
Block a user