diff --git a/src/main/kotlin/no/nav/fo/veilarbregistrering/aktorIdCache/AktorIdCacheRepository.kt b/src/main/kotlin/no/nav/fo/veilarbregistrering/aktorIdCache/AktorIdCacheRepository.kt index ab098d884..6ee4fda0b 100644 --- a/src/main/kotlin/no/nav/fo/veilarbregistrering/aktorIdCache/AktorIdCacheRepository.kt +++ b/src/main/kotlin/no/nav/fo/veilarbregistrering/aktorIdCache/AktorIdCacheRepository.kt @@ -6,4 +6,6 @@ interface AktorIdCacheRepository { fun lagre(aktorIdCache: AktorIdCache) fun hentAktørId(fnr: Foedselsnummer): AktorIdCache? + + fun hentTilfeldigFnr(antall: Int): List } \ No newline at end of file diff --git a/src/main/kotlin/no/nav/fo/veilarbregistrering/aktorIdCache/db/AktorIdCacheRepositoryImpl.kt b/src/main/kotlin/no/nav/fo/veilarbregistrering/aktorIdCache/db/AktorIdCacheRepositoryImpl.kt index ddeb4ced7..5e5b3dc2d 100644 --- a/src/main/kotlin/no/nav/fo/veilarbregistrering/aktorIdCache/db/AktorIdCacheRepositoryImpl.kt +++ b/src/main/kotlin/no/nav/fo/veilarbregistrering/aktorIdCache/db/AktorIdCacheRepositoryImpl.kt @@ -33,6 +33,11 @@ class AktorIdCacheRepositoryImpl(private val db: NamedParameterJdbcTemplate): Ak return db.query(sql, params, aktorIdCacheRowMapper).firstOrNull() } + override fun hentTilfeldigFnr(antall: Int): List { + val sql = "SELECT * FROM aktor_id_cache ORDER BY random() limit $antall" + return db.query(sql, aktorIdCacheRowMapper) + } + companion object { private val aktorIdCacheRowMapper = RowMapper { rs, _ -> AktorIdCache( diff --git a/src/main/kotlin/no/nav/fo/veilarbregistrering/arbeidssoker/perioder/PopulerHistoriskePerioderScheduler.kt b/src/main/kotlin/no/nav/fo/veilarbregistrering/arbeidssoker/perioder/PopulerHistoriskePerioderScheduler.kt new file mode 100644 index 000000000..4ffe00a4f --- /dev/null +++ b/src/main/kotlin/no/nav/fo/veilarbregistrering/arbeidssoker/perioder/PopulerHistoriskePerioderScheduler.kt @@ -0,0 +1,33 @@ +package no.nav.fo.veilarbregistrering.arbeidssoker.perioder + +import no.nav.fo.veilarbregistrering.aktorIdCache.AktorIdCacheRepository +import no.nav.fo.veilarbregistrering.bruker.Bruker +import no.nav.fo.veilarbregistrering.bruker.PdlOppslagGateway +import no.nav.fo.veilarbregistrering.log.secureLogger +import org.springframework.scheduling.annotation.Scheduled + +class PopulerHistoriskePerioderScheduler( + private val populerArbeidssokerperioderService: PopulerArbeidssokerperioderService, + private val pdlOppslagGateway: PdlOppslagGateway, + private val aktorIdCacheRepository: AktorIdCacheRepository +) { + + @Scheduled(initialDelay = 180000, fixedDelay = Long.MAX_VALUE) + fun populerHistoriskePerioder() { + val tilfeldigeFnr = aktorIdCacheRepository.hentTilfeldigFnr(5) + + tilfeldigeFnr.forEach { + val identer = pdlOppslagGateway.hentIdenter(it.aktorId) + + val arbeidssoker = populerArbeidssokerperioderService.hentArbeidssøker( + Bruker( + identer.finnGjeldendeFnr(), + it.aktorId, + identer.finnHistoriskeFoedselsnummer() + ) + ) + + secureLogger.info("Fant følgende perioder for fnr ${identer.finnGjeldendeFnr()}: ${arbeidssoker.allePerioder()}") + } + } +} \ No newline at end of file diff --git a/src/main/kotlin/no/nav/fo/veilarbregistrering/config/ServiceBeansConfig.kt b/src/main/kotlin/no/nav/fo/veilarbregistrering/config/ServiceBeansConfig.kt index dd1d9178a..97df1443f 100644 --- a/src/main/kotlin/no/nav/fo/veilarbregistrering/config/ServiceBeansConfig.kt +++ b/src/main/kotlin/no/nav/fo/veilarbregistrering/config/ServiceBeansConfig.kt @@ -3,6 +3,7 @@ package no.nav.fo.veilarbregistrering.config import no.nav.common.auth.context.AuthContextHolder import no.nav.common.featuretoggle.UnleashClient import no.nav.common.health.selftest.SelfTestChecks +import no.nav.fo.veilarbregistrering.aktorIdCache.AktorIdCacheRepository import no.nav.fo.veilarbregistrering.aktorIdCache.AktorIdCacheService import no.nav.fo.veilarbregistrering.arbeidsforhold.ArbeidsforholdGateway import no.nav.fo.veilarbregistrering.arbeidsforhold.resources.ArbeidsforholdResource @@ -16,6 +17,7 @@ import no.nav.fo.veilarbregistrering.arbeidssoker.meldekort.resources.MeldekortR import no.nav.fo.veilarbregistrering.arbeidssoker.perioder.ArbeidssokerService import no.nav.fo.veilarbregistrering.arbeidssoker.perioder.ArbeidssokerperiodeAvsluttetProducer import no.nav.fo.veilarbregistrering.arbeidssoker.perioder.PopulerArbeidssokerperioderService +import no.nav.fo.veilarbregistrering.arbeidssoker.perioder.PopulerHistoriskePerioderScheduler import no.nav.fo.veilarbregistrering.arbeidssoker.perioder.resources.ArbeidssokerResource import no.nav.fo.veilarbregistrering.autorisasjon.TilgangskontrollService import no.nav.fo.veilarbregistrering.bruker.KontaktinfoService @@ -321,6 +323,19 @@ class ServiceBeansConfig { brukerReaktiveringRepository) } + @Bean + fun populerArbeiddsokerPerioderScheduler( + populerArbeidssokerperioderService: PopulerArbeidssokerperioderService, + pdlOppslagGateway: PdlOppslagGateway, + aktorIdCacheRepository: AktorIdCacheRepository + ): PopulerHistoriskePerioderScheduler { + return PopulerHistoriskePerioderScheduler( + populerArbeidssokerperioderService, + pdlOppslagGateway, + aktorIdCacheRepository + ) + } + @Bean fun formidlingsgruppeMottakService( formidlingsgruppeRepository: FormidlingsgruppeRepository,