From a6d74a91733877895f80d734c47adc239d2a7d8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Oliver=20S=C3=B8berg?= <82504565+sebassonav@users.noreply.github.com> Date: Thu, 13 Feb 2025 12:57:21 +0100 Subject: [PATCH] Sett kontekst for jobb (#7013) --- .../AvbryterFeilopprettedeRevurderingJob.kt | 20 +++++++++++++++++-- .../main/kotlin/config/ApplicationContext.kt | 2 ++ .../src/main/kotlin/token/BrukerTokenInfo.kt | 2 ++ 3 files changed, 22 insertions(+), 2 deletions(-) diff --git a/apps/etterlatte-behandling/src/main/kotlin/behandling/jobs/AvbryterFeilopprettedeRevurderingJob.kt b/apps/etterlatte-behandling/src/main/kotlin/behandling/jobs/AvbryterFeilopprettedeRevurderingJob.kt index f8dd91185a..848b0b3ea6 100644 --- a/apps/etterlatte-behandling/src/main/kotlin/behandling/jobs/AvbryterFeilopprettedeRevurderingJob.kt +++ b/apps/etterlatte-behandling/src/main/kotlin/behandling/jobs/AvbryterFeilopprettedeRevurderingJob.kt @@ -2,20 +2,26 @@ package no.nav.etterlatte.behandling.jobs import kotlinx.coroutines.newSingleThreadContext import kotlinx.coroutines.runBlocking +import no.nav.etterlatte.Context +import no.nav.etterlatte.Kontekst +import no.nav.etterlatte.Self import no.nav.etterlatte.behandling.BehandlingService import no.nav.etterlatte.behandling.hendelse.getUUID import no.nav.etterlatte.common.ConnectionAutoclosing +import no.nav.etterlatte.common.DatabaseContext import no.nav.etterlatte.jobs.LoggerInfo import no.nav.etterlatte.jobs.fixedRateCancellableTimer import no.nav.etterlatte.libs.common.TimerJob import no.nav.etterlatte.libs.common.behandling.AarsakTilAvbrytelse import no.nav.etterlatte.libs.database.toList import no.nav.etterlatte.libs.ktor.token.HardkodaSystembruker +import no.nav.etterlatte.sak.SakTilgangDao import org.slf4j.LoggerFactory import java.time.Duration import java.time.temporal.ChronoUnit import java.util.Timer import java.util.UUID +import javax.sql.DataSource /** * Det ble opprettet aktivitetspliktrevurderinger for 12-månederskravet for feil måneder i starten av februar. @@ -28,9 +34,18 @@ class AvbryterFeilopprettedeRevurderingJob( private val behandlingService: BehandlingService, private val avbrytRevurderingerDao: AvbrytRevurderingerDao, private val isLeader: () -> Boolean, + dataSource: DataSource, + val sakTilgangDao: SakTilgangDao, ) : TimerJob { private val jobbNavn = this::class.java.simpleName private val logger = LoggerFactory.getLogger(AvbryterFeilopprettedeRevurderingJob::class.java) + private var jobContext: Context = + Context( + Self(AvbrytRevurderinger::class.java.simpleName), + DatabaseContext(dataSource), + sakTilgangDao, + HardkodaSystembruker.aktivitetsplikt, + ) override fun schedule(): Timer = fixedRateCancellableTimer( @@ -39,7 +54,7 @@ class AvbryterFeilopprettedeRevurderingJob( period = Duration.of(3, ChronoUnit.HOURS).toMillis(), loggerInfo = LoggerInfo(logger = logger, sikkerLogg = null, loggTilSikkerLogg = false), ) { - AvbrytRevurderinger(behandlingService, avbrytRevurderingerDao, isLeader).run() + AvbrytRevurderinger(behandlingService, avbrytRevurderingerDao, isLeader).run(jobContext) } } @@ -50,8 +65,9 @@ class AvbrytRevurderinger( ) { private val logger = LoggerFactory.getLogger(AvbrytRevurderinger::class.java) - fun run() { + fun run(context: Context) { if (isLeader()) { + Kontekst.set(context) logger.info("pod er leader, kjører jobb for å avbryte revurderinger") newSingleThreadContext("AvbrytRevurderingerJob").use { ctx -> Runtime.getRuntime().addShutdownHook(Thread { ctx.close() }) diff --git a/apps/etterlatte-behandling/src/main/kotlin/config/ApplicationContext.kt b/apps/etterlatte-behandling/src/main/kotlin/config/ApplicationContext.kt index 41d1801ce9..d89e6d71e2 100644 --- a/apps/etterlatte-behandling/src/main/kotlin/config/ApplicationContext.kt +++ b/apps/etterlatte-behandling/src/main/kotlin/config/ApplicationContext.kt @@ -727,6 +727,8 @@ internal class ApplicationContext( behandlingService = behandlingService, avbrytRevurderingerDao = AvbrytRevurderingerDao(connectionAutoclosing = autoClosingDatabase), isLeader = { leaderElectionKlient.isLeader() }, + dataSource = dataSource, + sakTilgangDao = sakTilgangDao, ) } diff --git a/libs/etterlatte-ktor/src/main/kotlin/token/BrukerTokenInfo.kt b/libs/etterlatte-ktor/src/main/kotlin/token/BrukerTokenInfo.kt index 707f961f74..1fb854b8b3 100644 --- a/libs/etterlatte-ktor/src/main/kotlin/token/BrukerTokenInfo.kt +++ b/libs/etterlatte-ktor/src/main/kotlin/token/BrukerTokenInfo.kt @@ -74,6 +74,7 @@ data class HardkodaSystembruker private constructor( */ val river = HardkodaSystembruker(Systembrukere.RIVER) val doedshendelse = HardkodaSystembruker(Systembrukere.DOEDSHENDELSE) + val aktivitetsplikt = HardkodaSystembruker(Systembrukere.AKTIVITETSPLIKT) val testdata = HardkodaSystembruker(Systembrukere.TESTDATA) val oppgave = HardkodaSystembruker(Systembrukere.OPPGAVE) val opprettGrunnlag = HardkodaSystembruker(Systembrukere.OPPRETT_GRUNNLAG) // skal bort på sikt @@ -90,6 +91,7 @@ data class HardkodaSystembruker private constructor( OPPRETT_GRUNNLAG("opprettgrunnlag"), RIVER("river"), DOEDSHENDELSE("doedshendelse"), + AKTIVITETSPLIKT("aktivitetsplikt"), TESTDATA("testdata"), OPPGAVE("oppgave"), BEREGNING("beregning"),