From c8ce45e331c5bb1b96790085cb9c35b27473cd37 Mon Sep 17 00:00:00 2001 From: Robert Goldmann <deadlocker@gmx.de> Date: Sun, 31 Oct 2021 10:57:01 +0100 Subject: [PATCH] list manual job in job list until it's done --- src/logic/JobScheduler.py | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/logic/JobScheduler.py b/src/logic/JobScheduler.py index d083739..4690eb9 100644 --- a/src/logic/JobScheduler.py +++ b/src/logic/JobScheduler.py @@ -27,6 +27,8 @@ class JobScheduler: self._jobAutomatic = self._scheduler.add_job(func=dummyFunc, args=[], trigger='interval', minutes=60, id=self.ID_AUTO, timezone=TIMEZONE) + self._jobManual = None + self._jobStatus = { self.ID_AUTO: self.STATE_IDLE, self.ID_MANUAL: self.STATE_IDLE @@ -61,9 +63,9 @@ class JobScheduler: if self._jobStatus[self.ID_MANUAL] == self.STATE_RUNNING: raise JobAlreadyRunningError(f'Job "{self.ID_MANUAL}" is already running!') - self._scheduler.add_job(func=func, args=args, trigger='date', - run_date=datetime.now() + timedelta(seconds=5), - id=self.ID_MANUAL, timezone=TIMEZONE) + self._jobManual = self._scheduler.add_job(func=func, args=args, trigger='date', + run_date=datetime.now() + timedelta(seconds=5), + id=self.ID_MANUAL, timezone=TIMEZONE) self._jobStatus[self.ID_MANUAL] = self.STATE_RUNNING def get_scheduled_jobs(self) -> Schemas.ScheduledJobStatus: @@ -74,6 +76,14 @@ class JobScheduler: next_run=str(job.next_run_time)) jobs.append(scheduledJob) + isManualJobInList = any(job for job in jobs if job.job_id == self.ID_MANUAL) + isManualJobRunning = self._jobStatus[self.ID_MANUAL] == self.STATE_RUNNING + + if isManualJobRunning and not isManualJobInList: + jobs.append(Schemas.ScheduledJob(job_id=self.ID_MANUAL, + run_frequency=str(self._jobManual.trigger), + next_run=str(self._jobManual.next_run_time))) + return Schemas.ScheduledJobStatus(jobs=jobs, job_results=self._jobResults) -- GitLab