From 6533481391e96d70cd8766608d56c54b7702fa13 Mon Sep 17 00:00:00 2001 From: Brett Williams Date: Tue, 30 May 2023 22:30:18 -0500 Subject: [PATCH] Remove all references to ScheduledJob --- lib/render_queue.py | 2 +- lib/render_workers/base_worker.py | 20 +++++++++++++++++++- lib/server/job_server.py | 1 - 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/lib/render_queue.py b/lib/render_queue.py index 3de9986..ebcba6b 100755 --- a/lib/render_queue.py +++ b/lib/render_queue.py @@ -109,7 +109,7 @@ class RenderQueue: @classmethod def load_state(cls): - cls.job_queue = cls.session.query(ScheduledJob).all() + cls.job_queue = cls.session.query(BaseRenderWorker).all() @classmethod def save_state(cls): diff --git a/lib/render_workers/base_worker.py b/lib/render_workers/base_worker.py index 74bde72..5a112ca 100644 --- a/lib/render_workers/base_worker.py +++ b/lib/render_workers/base_worker.py @@ -31,7 +31,7 @@ def string_to_status(string): for stat in RenderStatus: if stat.value == string: return stat - return RenderStatus.ERROR + return RenderStatus.UNDEFINED class BaseRenderWorker(Base): @@ -41,6 +41,8 @@ class BaseRenderWorker(Base): input_path = Column(String) output_path = Column(String) date_created = Column(DateTime) + start_time = Column(DateTime) + end_time = Column(DateTime) renderer = Column(String) renderer_version = Column(String) priority = Column(Integer) @@ -48,6 +50,7 @@ class BaseRenderWorker(Base): client = Column(String) name = Column(String) file_hash = Column(String) + _status = Column(String) engine = None @@ -97,6 +100,18 @@ class BaseRenderWorker(Base): self.is_finished = False self.last_output = None + @property + def status(self): + return self._status + + @status.setter + def status(self, value): + self._status = value.value + + @status.getter + def status(self): + return string_to_status(self._status) + def validate(self): if not os.path.exists(self.input_path): raise FileNotFoundError(f"Cannot find input path: {self.input_path}") @@ -285,6 +300,9 @@ class BaseRenderWorker(Base): worker_data['percent_complete'] = self.percent_complete() worker_data['time_elapsed'] = self.time_elapsed() worker_data['status'] = self.status.value + worker_data['renderer'] = self.renderer + worker_data['name'] = self.name + worker_data['renderer_version'] = self.renderer_version keys_to_remove = ['thread', 'process'] # remove unwanted keys from dict for key in worker_data.keys(): if key.startswith('_'): diff --git a/lib/server/job_server.py b/lib/server/job_server.py index 3408d58..d2ae020 100755 --- a/lib/server/job_server.py +++ b/lib/server/job_server.py @@ -16,7 +16,6 @@ import yaml from flask import Flask, request, render_template, send_file, after_this_request, Response, redirect, url_for, abort from werkzeug.utils import secure_filename -from lib.scheduled_job import ScheduledJob from lib.render_queue import RenderQueue, JobNotFoundError from lib.render_workers.worker_factory import RenderWorkerFactory from lib.render_workers.base_worker import string_to_status, RenderStatus