Skip to content
Snippets Groups Projects
Verified Commit 53eae502 authored by Dorian Koch's avatar Dorian Koch
Browse files

Fix sorter id, catch exceptions

parent 2855edc6
No related merge requests found
......@@ -13,16 +13,20 @@ class RunSorter(GeneratorRecurringEvent):
self.interval = interval
def generator(self, cstate: ControllerState) -> Generator[datetime.timedelta | datetime.datetime, None, None]:
self.idx = datetime.datetime.now().timestamp()
self.idx = int(datetime.datetime.now().timestamp())
while True:
try: # wrap the entire thing in a try catch because this should never fail
sorter_job_data = JobData(f"jc-internal-sorter-{self.idx}", job_type="sorter", job_state=JobState.SPAWNING)
cstate.job_api.create_job(sorter_job_data) # put in database, but it wont be picked up by find_ready_jobs because it's already in spawning state
# put in database, but it wont be picked up by find_ready_jobs because it's already in spawning state
cstate.job_api.create_job(sorter_job_data)
wrapped = cstate.wrap_job(sorter_job_data)
spawnJobEvt = SpawnJob(wrapped)
cstate.event_queue.put(spawnJobEvt)
while not spawnJobEvt.done: # wait for spawn job to be done
yield spawnJobEvt.due_at # because the event queue is stable, we will be queued after the spawnjob event executes
print("Sorter job spawned")
watchJobEvt = spawnJobEvt.watch_job_evt
if watchJobEvt is None:
print("Spawning sorter job failed!")
......@@ -31,4 +35,6 @@ class RunSorter(GeneratorRecurringEvent):
yield watchJobEvt.due_at
# spawn job is done
print("Sorter job done")
except Exception as e:
print(f"Error in RunSorter: {e}")
yield self.interval
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment