Skip to content

Commit 2790af0

Browse files
authored
fix: run_scheduler.py --immediate on empty database causes exception (#96)
1 parent e884e14 commit 2790af0

File tree

1 file changed

+35
-31
lines changed

1 file changed

+35
-31
lines changed

run_scheduler.py

Lines changed: 35 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -52,37 +52,41 @@ def clear_db_jobs():
5252

5353

5454
async def run_immediate():
55-
logger.info("Clearing existing jobs")
56-
clear_db_jobs()
57-
now_trigger = DateTrigger(run_date=datetime.now(UTC))
58-
logger.info("Adding one-off job: populate DB groups")
59-
SCHEDULER.add_job(
60-
populate_db_groups,
61-
trigger=now_trigger,
62-
id="populate_db_groups",
63-
replace_existing=True
64-
)
65-
logger.info("Adding one-off job: sync_auth0_roles")
66-
SCHEDULER.add_job(
67-
sync_auth0_roles,
68-
trigger=now_trigger,
69-
id="sync_auth0_roles",
70-
replace_existing=True
71-
)
72-
logger.info("Adding one-off job: sync_auth0_users")
73-
SCHEDULER.add_job(
74-
sync_auth0_users,
75-
trigger=now_trigger,
76-
id="sync_auth0_users",
77-
replace_existing=True
78-
)
79-
SCHEDULER.start()
80-
logger.info("Scheduler started, waiting for jobs to complete...")
81-
while SCHEDULER.get_jobs():
82-
SCHEDULER.print_jobs()
83-
await asyncio.sleep(0.5)
84-
logger.info("Stopping scheduler")
85-
SCHEDULER.shutdown(wait=True)
55+
logger.info("Starting scheduler in paused mode to initialize job store")
56+
SCHEDULER.start(paused=True)
57+
try:
58+
logger.info("Clearing existing jobs")
59+
clear_db_jobs()
60+
now_trigger = DateTrigger(run_date=datetime.now(UTC))
61+
logger.info("Adding one-off job: populate DB groups")
62+
SCHEDULER.add_job(
63+
populate_db_groups,
64+
trigger=now_trigger,
65+
id="populate_db_groups",
66+
replace_existing=True
67+
)
68+
logger.info("Adding one-off job: sync_auth0_roles")
69+
SCHEDULER.add_job(
70+
sync_auth0_roles,
71+
trigger=now_trigger,
72+
id="sync_auth0_roles",
73+
replace_existing=True
74+
)
75+
logger.info("Adding one-off job: sync_auth0_users")
76+
SCHEDULER.add_job(
77+
sync_auth0_users,
78+
trigger=now_trigger,
79+
id="sync_auth0_users",
80+
replace_existing=True
81+
)
82+
logger.info("Resuming scheduler and waiting for jobs to complete...")
83+
SCHEDULER.resume()
84+
while SCHEDULER.get_jobs():
85+
SCHEDULER.print_jobs()
86+
await asyncio.sleep(0.5)
87+
finally:
88+
logger.info("Stopping scheduler")
89+
SCHEDULER.shutdown(wait=True)
8690

8791

8892
async def run_with_scheduler():

0 commit comments

Comments
 (0)