From 82999e37f8f561ef113dced39ee3c1578e45ec01 Mon Sep 17 00:00:00 2001 From: nc5432 Date: Tue, 7 Oct 2025 13:02:52 -0400 Subject: [PATCH] Got started on a worker process --- TimeWaster.py | 35 +++++++++++++++++++++++++++++++++++ server.py | 4 +++- 2 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 TimeWaster.py diff --git a/TimeWaster.py b/TimeWaster.py new file mode 100644 index 0000000..595bb64 --- /dev/null +++ b/TimeWaster.py @@ -0,0 +1,35 @@ +import time, uuid, signal, random, os + +class TimeWaster: + def __init__(self): + self.running = True + self.jobs: dict = {} + + def handleNewJob(self): + jobId: uuid.UUID = uuid.uuid4() + self.jobs[jobId] = "exists i guess" + + def handleCancelJob(self): + pass + + def quit(self): + self.running = False + + def main(self): + while self.running: + if len(self.jobs) == 0: + time.sleep(0.01) + else: + uuid = self.jobs.keys[0] + job = self.jobs[uuid] + time.sleep(random.randrange(1, 10) / 10) + result: JobResult = JobResult(uuid, "done i guess") + os.write(1, result) + +class JobResult: + def __init__(self, uuid, result) -> None: + self.uuid = uuid + self.result = result + +if __name__ == "__main__": + TimeWaster().main() diff --git a/server.py b/server.py index 77fd28b..21e3be4 100644 --- a/server.py +++ b/server.py @@ -1,5 +1,5 @@ from websockets import * -import asyncio, json, signal, sys, time, random +import asyncio, json, signal, sys, time, random, subprocess, os class WebSocketServer: server: Server = None @@ -17,6 +17,8 @@ class WebSocketServer: async def handleConnection(self, connection: ServerConnection) -> None: #TODO: Make this actually do something print(f"{connection.remote_address} Connected") + stdio: tuple(int, int) = os.pipe2() + worker: subprocess.Popen = subprocess.Popen(["python3", "TimeWaster.py"], stdin=stdio[0], stdout=stdio[1]) connected: bool = True task: asyncio.Task = None while (connected):