Skip to content
This repository has been archived by the owner on Nov 5, 2024. It is now read-only.

Commit

Permalink
f Hent ut 1 mill fødselsnr av gangen når vi populerer aktørId og finn…
Browse files Browse the repository at this point in the history
… distinkte i kode i stedet for i db
  • Loading branch information
marenger committed Jan 25, 2023
1 parent e8437a4 commit 6220711
Show file tree
Hide file tree
Showing 2 changed files with 46 additions and 30 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -31,42 +31,55 @@ class PopulerAktorIdWorker(
try {
CallId.leggTilCallId()
logger.info("Startet jobb for å populere aktor_id_cache")
var foedselsnummer: List<Foedselsnummer> = formidlingsgruppeRepository.hentUnikeFoedselsnummer()
logger.info("Hentet ${foedselsnummer.size} unike foedselsnummer")
var teller = 1
while (foedselsnummer.isNotEmpty() && unleashClient.isEnabled("veilarbregistrering.populere-aktorid")) {
val foedselsnummerBolk = foedselsnummer.take(100)
foedselsnummer = foedselsnummer.drop(100)
var foedselsnummerOffset = 0
val EN_MILLION = 1000000
var foedselsnummer =
formidlingsgruppeRepository.hentFoedselsnummerIBolk(foedselsnummerOffset, EN_MILLION).distinct()
while (foedselsnummer.isNotEmpty()) {
populerAktørIdForBolk(foedselsnummer, foedselsnummerOffset)
logger.info("Har hentet og oppdatert aktørId for offset $foedselsnummerOffset")

val aktorIdFnrMap = pdlOppslagGateway.hentIdenterBolk(foedselsnummerBolk, true)
val fnrUtenTreff = foedselsnummerBolk.subtract(aktorIdFnrMap.keys)

if (fnrUtenTreff.isNotEmpty()) {
secureLogger.warn("Aktor_id ikke funnet for foedselsnummer $fnrUtenTreff i bolk $teller")
logger.info("${fnrUtenTreff.size} fødselsnummer manglet aktorId i PDL for bolk nr $teller")
}
if (aktorIdFnrMap.isEmpty()) {
teller += 1
logger.info("Fant ingen identer fra hentIdenterBolk i bolk nr $teller")
continue
}

val oppdaterteRader =
aktorIdCacheRepository.lagreBolk(aktorIdFnrMap.map {
AktorIdCache(
it.key,
it.value,
LocalDateTime.now()
)
})

logger.info("Oppdaterte $oppdaterteRader i jobb som populerer AktørId-cache for bolk nr $teller")
teller += 1
foedselsnummerOffset += EN_MILLION
foedselsnummer =
formidlingsgruppeRepository.hentFoedselsnummerIBolk(foedselsnummerOffset, EN_MILLION).distinct()
}
logger.info("Jobb for å populere aktor_id_cache er nå fullført")
} finally {
MDC.clear()
}
}

private fun populerAktørIdForBolk(fnr: List<Foedselsnummer>, offset: Int) {
var teller = 1
var foedselsnummer = fnr
while (foedselsnummer.isNotEmpty() && unleashClient.isEnabled("veilarbregistrering.populere-aktorid")) {
val foedselsnummerBolk = foedselsnummer.take(100)
foedselsnummer = foedselsnummer.drop(100)

val aktorIdFnrMap = pdlOppslagGateway.hentIdenterBolk(foedselsnummerBolk, true)
val fnrUtenTreff = foedselsnummerBolk.subtract(aktorIdFnrMap.keys)

if (fnrUtenTreff.isNotEmpty()) {
secureLogger.warn("Aktor_id ikke funnet for foedselsnummer $fnrUtenTreff i iterasjon $teller i bolk $offset")
logger.info("${fnrUtenTreff.size} fødselsnummer manglet aktorId i PDL for iterasjon nr $teller i bolk $offset")
}
if (aktorIdFnrMap.isEmpty()) {
teller += 1
logger.info("Fant ingen identer fra hentIdenterBolk i iterasjon nr $teller i bolk $offset")
continue
}

val oppdaterteRader =
aktorIdCacheRepository.lagreBolk(aktorIdFnrMap.map {
AktorIdCache(
it.key,
it.value,
LocalDateTime.now()
)
})

logger.info("Oppdaterte $oppdaterteRader i jobb som populerer AktørId-cache for iterasjon nr $teller i bolk $offset")
teller += 1
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,7 @@ class FormidlingsgruppeRepositoryDbIntegrationTest(
val forste2Fnr = formidlingsgruppeRepository.hentFoedselsnummerIBolk(0, 2)
val neste2Fnr = formidlingsgruppeRepository.hentFoedselsnummerIBolk(2, 2)
val sisteFnr = formidlingsgruppeRepository.hentFoedselsnummerIBolk(4, 2)
val offsetUtenforRange = formidlingsgruppeRepository.hentFoedselsnummerIBolk(6, 2)

assertEquals(2, forste2Fnr.size)
assertTrue(forste2Fnr.containsAll(listOf(command5.foedselsnummer, command4.foedselsnummer)))
Expand All @@ -115,6 +116,8 @@ class FormidlingsgruppeRepositoryDbIntegrationTest(

assertEquals(1, sisteFnr.size)
assertTrue(sisteFnr.contains(command.foedselsnummer))

assertEquals(0, offsetUtenforRange.size)
}

private fun endretFormdlingsgruppe(foedselsnummer: Foedselsnummer, tidspunkt: LocalDateTime): FormidlingsgruppeEndretEvent {
Expand Down

0 comments on commit 6220711

Please sign in to comment.