46 lines
1.2 KiB
Python
46 lines
1.2 KiB
Python
import time, uuid, signal, random, os
|
|
from enum import Enum
|
|
|
|
class JobStatus(Enum):
|
|
QUEUED = 1
|
|
FINISHED = 2
|
|
ERRORED = 3
|
|
|
|
class TimeWaster:
|
|
def __init__(self):
|
|
self.running = True
|
|
self.jobs: dict = {}
|
|
|
|
def handleNewJob(self):
|
|
msg = os.read(0, 1024)
|
|
if (msg) == "job":
|
|
jobId: uuid.UUID = uuid.uuid4()
|
|
self.jobs[jobId] = JobResult(jobId, JobStatus.QUEUED, "exists I guess")
|
|
os.write(1, self.jobs[jobId])
|
|
|
|
def handleCancelJob(self):
|
|
pass
|
|
|
|
def quit(self):
|
|
self.running = False
|
|
|
|
def main(self):
|
|
while self.running:
|
|
if len(self.jobs) == 0:
|
|
self.handleNewJob()
|
|
else:
|
|
job: JobResult = self.jobs[self.jobs.keys[0]]
|
|
time.sleep(random.randrange(1, 10) / 10)
|
|
job.status = JobStatus.FINISHED
|
|
job.result = "done i guess"
|
|
os.write(1, job)
|
|
|
|
class JobResult:
|
|
def __init__(self, uuid: uuid.UUID, status: JobStatus, result) -> None:
|
|
self.uuid = uuid
|
|
self.status = status
|
|
self.result = result
|
|
|
|
if __name__ == "__main__":
|
|
TimeWaster().main()
|