requires:
# terminal 1
python mosec_websocket.py
# terminal 2
websocat -s 3000
# terminal 3
http :8000/inference msg=hello
requires:
# terminal 1
python mosec_websocket.py
# terminal 2
websocat -s 3000
# terminal 3
http :8000/inference msg=hello
import threading | |
import queue | |
import json | |
from mosec import Server, Worker | |
from websocket import create_connection | |
class Inf(Worker): | |
def __init__(self) -> None: | |
super().__init__() | |
self.client = create_connection("ws://localhost:3000/") | |
self.q = queue.SimpleQueue() | |
threading.Thread(target=self.sync, daemon=True).start() | |
def sync(self): | |
while True: | |
msg = self.q.get() | |
self.client.send(json.dumps(msg)) | |
def forward(self, data): | |
for _ in range(5): | |
self.q.put(data) | |
return data | |
if __name__ == "__main__": | |
server = Server() | |
server.append_worker(Inf, num=2, max_batch_size=8) | |
server.run() |