package Ġio . ark it ik . tr av ako . starter . processor . runner Ċ Ċ import Ġio . ark it ik . radix . develop . operation . ext . run Operation Ċ import Ġio . ark it ik . tr av ako . core . domain . runner . Scheduler Runner Domain Ċ import Ġio . ark it ik . tr av ako . domain . job . event . embedded . Job EventType Ċ import Ġio . ark it ik . tr av ako . function . processor . Processor Ċ import Ġio . ark it ik . tr av ako . function . transaction . Transactional Executor Ċ import Ġio . ark it ik . tr av ako . sdk . job . event . Job Event Sdk Ċ import Ġio . ark it ik . tr av ako . sdk . job . event . dto . EventData Dto Ċ import Ġio . ark it ik . tr av ako . sdk . job . event . dto . Job Event Runner Key And Uuid Dto Ċ import Ġio . ark it ik . tr av ako . sdk . job . event . dto . Job Event Runner Key Dto Ċ import Ġio . ark it ik . tr av ako . starter . job . bean . Job Instance Bean Ċ import Ġio . ark it ik . tr av ako . starter . processor . config . Tr av ako Config Ċ import Ġio . ark it ik . tr av ako . starter . processor . job . Jobs Scheduler Registry Ċ import Ġio . ark it ik . tr av ako . starter . processor . logger . logger Ċ import Ġio . ark it ik . tr av ako . starter . processor . scheduler . fixed Rate Job Ċ import Ġorg . springframework . scheduling . Task Scheduler Ċ Ċ /** Ċ Ġ* ĠCreated ĠBy Ġ[* I br ah im ĠAl - T am imi Ġ ï £ ¿ * ]( https :// www . linkedin . com / in / ilo om /) Ċ Ġ* ĠCreated ĠAt Ġ 0 4 Ġ 7 : 2 1 ĠPM , Ġ** Tue , ĠJanuary Ġ 2 0 2 2 ** Ċ Ġ* ĠProject Ġ* tr av ako * Ġ[ ark it ik . io ]( https :// ark it ik . io ) Ċ Ġ*/ Ċ class ĠRunner Job Restart Processor ( ĊĠĠĠ Ġprivate Ġval Ġtrav ako Config : ĠTr av ako Config , ĊĠĠĠ Ġprivate Ġval Ġtask Scheduler : ĠTask Scheduler , ĊĠĠĠ Ġprivate Ġval Ġjob Event Sdk : ĠJob Event Sdk , ĊĠĠĠ Ġprivate Ġval Ġtransaction al Executor : ĠTransaction al Executor , ĊĠĠĠ Ġprivate Ġval Ġjob Instances : ĠList < Job Instance Bean >, ĊĠĠĠ Ġprivate Ġval Ġjobs Scheduler Registry : ĠJobs Scheduler Registry , Ċ ) Ġ: ĠProcessor < Scheduler Runner Domain > Ġ{ ĊĠĠĠ Ġoverride Ġval Ġtype Ġ= ĠScheduler Runner Domain :: class . java ĊĠĠĠ Ġprivate Ġval Ġlogger Ġ= Ġlogger < Runner Job Restart Processor >() ĊĠĠĠ Ġprivate Ġval Ġevent Processors Ġ= Ġhash Map Of < String , Ġ( EventData Dto ) Ġ-> ĠUnit >() ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġevent Processors [ Job EventType . RE START . name ] Ġ= Ġ{ Ġevent Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġjob Instances . first OrNull Ġ{ Ġjob Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevent . job Key Ġ== Ġjob . job Key ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ?. let Ġ{ Ġjob Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjobs Scheduler Registry . reboot Scheduled Job ( job ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġprocess () Ġ{ ĊĠĠĠĠĠĠĠ Ġtrav ako Config . jobs Event ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fixed Rate Job ( task Scheduler ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjob Event Sdk . pending Events For Runner . run Catch ing Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrun Operation ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠJob Event Runner Key Dto ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġserver Key Ġ= Ġtrav ako Config . key Dto . server Key , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrunner Key Ġ= Ġtrav ako Config . key Dto . runner Key , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrunner Host Ġ= Ġtrav ako Config . key Dto . runner Host ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). events ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. forEach Ġ{ Ġevent Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransaction al Executor . run Unit Transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevent Processors [ event . eventType ]?. let Ġ{ Ġfunction Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . debug (" Start Ġ{} Ġprocessor Ġfor Ġ[ Job - Key Ġ{} ]", Ġevent . eventType , Ġevent . job Key ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfunction ( event ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjob Event Sdk . mark Event Processed For Runner . run Operation ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠJob Event Runner Key And Uuid Dto ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġserver Key Ġ= Ġtrav ako Config . key Dto . server Key , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrunner Key Ġ= Ġtrav ako Config . key Dto . runner Key , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrunner Host Ġ= Ġtrav ako Config . key Dto . runner Host , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevent Uuid Ġ= Ġevent . event Uuid ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. on Failure Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . warn (" Error Ġwhile Ġfetching Ġpending Ġevents Ġfor Ġrunner Ġ{}, Ġcause Ġ{}", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ tr av ako Config . key Dto . runner Key }-${ tr av ako Config . key Dto . runner Host }", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ