1111 JobEvent ,
1212)
1313from taskcrafter .exceptions .hook import HookNotFound
14+ from taskcrafter .exceptions .job import JobKillSignalError
1415from taskcrafter .logger import app_logger
1516from taskcrafter .job_loader import JobManager
1617from taskcrafter .hook_loader import HookManager
@@ -36,7 +37,7 @@ def start_scheduler(self):
3637 self .scheduler .add_listener (self .event_listener_job , EVENT_ALL )
3738 self .scheduler .start ()
3839
39- app_logger .info ("Scheduler started." )
40+ app_logger .debug ("Scheduler started." )
4041
4142 # check and execute BEFORE_ALL hook
4243 self .schedule_hook_jobs (HookType .BEFORE_ALL )
@@ -47,7 +48,7 @@ def start_scheduler(self):
4748 time .sleep (1 )
4849 except (KeyboardInterrupt , SystemExit ):
4950 self .stop_scheduler ()
50- app_logger .info ("Scheduler stopped." )
51+ app_logger .debug ("Scheduler stopped." )
5152
5253 def event_listener_job (self , event ):
5354 if isinstance (event , JobEvent ):
@@ -57,6 +58,13 @@ def event_listener_job(self, event):
5758 self .schedule_hook_jobs (HookType .BEFORE_JOB , event )
5859 elif isinstance (event , JobExecutionEvent ):
5960 if event .exception :
61+ if isinstance (event .exception , JobKillSignalError ):
62+ app_logger .warning (
63+ f"Job { job_id } is exit job, scheduler will be stopped."
64+ )
65+ self ._event .set ()
66+ return
67+
6068 self .schedule_hook_jobs (HookType .ON_ERROR , event )
6169 app_logger .error (
6270 f"scheduler: { event .job_id } failed with exception: { event .exception } "
@@ -73,13 +81,6 @@ def event_listener_job(self, event):
7381
7482 self .schedule_hook_jobs (HookType .AFTER_JOB , event )
7583
76- if self .job_manager .job_get_by_id (job_id ).plugin == "exit" :
77- app_logger .warning (
78- f"Job { job_id } is exit job, scheduler will be stopped."
79- )
80- self ._event .set ()
81- return
82-
8384 if self .job_manager .get_in_progress () == 0 :
8485 hook_executed = self .schedule_hook_jobs (HookType .AFTER_ALL , event )
8586
0 commit comments