diff --git a/lib/render_workers/render_worker.py b/lib/render_workers/render_worker.py index 77fd36b..902f079 100644 --- a/lib/render_workers/render_worker.py +++ b/lib/render_workers/render_worker.py @@ -20,6 +20,7 @@ class RenderStatus(Enum): CANCELLED = "cancelled" ERROR = "error" SCHEDULED = "scheduled" + UNDEFINED = "undefined" def string_to_status(string): @@ -244,6 +245,7 @@ class BaseRenderWorker(object): worker_data = self.__dict__.copy() worker_data['percent_complete'] = self.percent_complete() worker_data['time_elapsed'] = self.time_elapsed() + worker_data['status'] = self.status.value keys_to_remove = ['thread', 'process'] # remove unwanted keys from dict for key in worker_data.keys(): if key.startswith('_'): diff --git a/lib/scheduled_job.py b/lib/scheduled_job.py index c0c0a24..e1b9858 100644 --- a/lib/scheduled_job.py +++ b/lib/scheduled_job.py @@ -81,12 +81,14 @@ class ScheduledJob(Base): def render_status(self): try: - if self.scheduled_start and self.worker_object.status == RenderStatus.NOT_STARTED: + worker_status = RenderStatus(self.worker_data()['status']) + if self.scheduled_start and worker_status == RenderStatus.NOT_STARTED: return RenderStatus.SCHEDULED else: - return self.worker_object.status - except: - return RenderStatus.CANCELLED + return worker_status + except Exception as e: + logger.error(f"Exception fetching render status: {e}") + return RenderStatus.UNDEFINED def json(self): """Converts RenderJob into JSON-friendly dict"""