requires:
# terminal 1
python mosec_websocket.py
# terminal 2
websocat -s 3000
# terminal 3
http :8000/inference msg=hellorequires:
# 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() |