package Ġnet . nem eros a . on track . service . job Ċ Ċ import Ġio . micro meter . core . instrument . Meter Registry Ċ import Ġnet . nem eros a . on track . job . Job Key Ċ import Ġnet . nem eros a . on track . job . Job Listener Ċ import Ġnet . nem eros a . on track . job . Job Run Progress Ċ import Ġnet . nem eros a . on track . job . JobStatus Ċ import Ġnet . nem eros a . on track . model . structure . Name Description Ċ import Ġnet . nem eros a . on track . model . support . Application LogEntry Ċ import Ġnet . nem eros a . on track . model . support . Application Log Service Ċ import Ġnet . nem eros a . on track . model . support . Settings Repository Ċ import Ġorg . springframework . transaction . annotation . Transactional Ċ import Ġjava . util . concurrent . TimeUnit Ċ Ċ open Ġclass ĠDefault Job Listener ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġlog Service : ĠApplication Log Service , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġmeter Registry : ĠMeter Registry , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġsettings Repository : ĠSettings Repository Ċ ) Ġ: ĠJob Listener Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġon Job Start ( key : ĠJob Key ) Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Transactional ĊĠĠĠ Ġoverride Ġfun Ġon Job Paused ( key : ĠJob Key ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsettings Repository . set Boolean ( Job Listener :: class . java , Ġkey . toString (), Ġtrue ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Transactional ĊĠĠĠ Ġoverride Ġfun Ġon Job Res umed ( key : ĠJob Key ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsettings Repository . delete ( Job Listener :: class . java , Ġkey . toString ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Job End ( key : ĠJob Key , Ġmilliseconds : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠ Ġmeter Registry . timer (" on track _ job _ duration _ ms ", Ġkey . metric Tags ). record ( milliseconds , ĠTimeUnit . MILLISECONDS ) ĊĠĠĠĠĠĠĠ Ġmeter Registry . counter (" on track _ job _ run _ count ", Ġkey . metric Tags ). increment () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Job Error ( status : ĠJob Status , Ġex : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġkey Ġ= Ġstatus . key ĊĠĠĠĠĠĠĠ Ġmeter Registry . counter (" on track _ job _ errors ", Ġkey . metric Tags ). increment () ĊĠĠĠĠĠĠĠ Ġlog Service . log ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApplication LogEntry . error ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġex , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠName Description . nd ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkey . type . toString (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkey . type . name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus . description ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). with Detail (" job . key ", Ġkey . id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Detail (" job . progress ", Ġstatus . progress Text ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Job Complete ( key : ĠJob Key ) Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Job Progress ( key : ĠJob Key , Ġprogress : ĠJob Run Progress ) Ġ{} ĊĊĠĠĠ Ġoverride Ġfun Ġis Paused At Startup ( key : ĠJob Key ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġsettings Repository . getBoolean ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠJob Listener :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkey . toString (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ