package Ġno . nav . sy fo . integration . kafka Ċ Ċ import Ġcom . fasterxml . jackson . databind . ObjectMapper Ċ import Ġkotlinx . coroutines . Coroutine Scope Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġno . nav . hel se . ar be id sg iver . bak gr un ns job b . B ak gr un ns job b Ċ import Ġno . nav . hel se . ar be id sg iver . bak gr un ns job b . B ak gr un ns job b Repository Ċ import Ġno . nav . hel se . ar be id sg iver . utils . Recurring Job Ċ import Ġno . nav . sy fo . k af k am ott ak . In ng aa ende Journal post DTO Ċ import Ġno . nav . sy fo . pro sess er . Jo ark In n tek ts meld ing H en del se Pro sess or Ċ import Ġjava . time . Duration Ċ import Ġjava . time . LocalDateTime Ċ Ċ class ĠPoll For Jo ark hen del ser Job ( ĊĠĠĠ Ġprivate Ġval Ġkafka Provider : ĠJo ark H en del se Kafka Client , ĊĠĠĠ Ġprivate Ġval Ġb ak gr un ns job b Repo : ĠB ak gr un ns job b Repository , ĊĠĠĠ Ġprivate Ġval Ġom : ĠObjectMapper , ĊĠĠĠ Ġcoroutine Scope : ĠCor outine Scope Ġ= ĠCor outine Scope ( Dispatch ers . IO ), ĊĠĠĠ Ġwait Time When Empty Queue : ĠDuration Ġ= ĠDuration . of Seconds ( 3 0 ) Ċ ) Ġ: ĠRe cur ring Job ( coroutine Scope , Ġwait Time When Empty Queue . to Millis ()) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġdo Job () Ġ{ ĊĠĠĠĠĠĠĠ Ġdo Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwas Empty Ġ= Ġkafka Provider ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. get Messages To Process () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on Each Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġh en del se Ġ= Ġom . readValue ( it , ĠIn ng aa ende Journal post DTO :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġhttps :// con fluence . ade o . no / display / BO A / T ema Ġhttps :// con fluence . ade o . no / display / BO A / M ott ak sk anal ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġis Sy ket ema Og F ra Alt inn M idl ert id ig Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġh en del se . tem aN y tt Ġ== Ġ" SY K " Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġh en del se . mot t aks K anal Ġ== Ġ" ALT IN N " Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġh en del se . journal post Status Ġ== Ġ" M " ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Sy ket ema Og F ra Alt inn M idl ert id ig ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġb ak gr un ns job b Repo . save ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠB ak gr un ns job b ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= ĠJo ark In n tek ts meld ing H en del se Pro sess or . JOB _ TYPE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġk jo er et id Ġ= ĠLocalDateTime . now (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm aks Ant all For so ek Ġ= Ġ 1 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEmpty () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! was Empty ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkafka Provider . confirm Processing Done () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġwhile Ġ(! was Empty ) ĊĠĠĠ Ġ} Ċ } Ċ