diff --git a/openpype/modules/default_modules/hosts_job_server/job_server/workers.py b/openpype/modules/default_modules/hosts_job_server/job_server/workers.py index 21cd8f4828..61d76bdf48 100644 --- a/openpype/modules/default_modules/hosts_job_server/job_server/workers.py +++ b/openpype/modules/default_modules/hosts_job_server/job_server/workers.py @@ -13,6 +13,8 @@ class Worker: self._id = None self.host_name = host_name self._state = WorkerState.IDLE + self._job = None + @property def id(self): @@ -24,6 +26,10 @@ class Worker: def state(self): return self._state + @property + def current_job(self): + return self._job + def is_idle(self): return self._state is WorkerState.IDLE @@ -35,3 +41,21 @@ class Worker: def is_working(self): return self._state is WorkerState.JOB_SENT + + def set_current_job(self, job): + if job is self._job: + return + + self._job = job + if job is None: + self._set_idle() + else: + self._state = WorkerState.JOB_ASSIGNED + job.set_worker(self) + + def _set_idle(self): + self._job = None + self._state = WorkerState.IDLE + + def set_working(self): + self._state = WorkerState.JOB_SENT