From 3f8ba2ad30fbcd191162844ddf3d67ff4f39fe6c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Geir=20Andr=C3=A9=20Lund?= Date: Tue, 14 Jan 2025 14:03:32 +0100 Subject: [PATCH] Legger til indeks for henholdsvis opplysninger_id og opplysing_id i opplysninger_opplysning tabellen. Lager transaksjon per kandidat vi sletter. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Richard André Martinsen --- .../jobber/SlettFjernetOpplysninger.kt | 4 ++-- .../repository/VaktmesterPostgresRepo.kt | 20 +++++++++---------- ...V36__INDEKS_OPPLYSNINGER_OPPLYSNING_ID.sql | 2 ++ .../behandling/db/PostgresMigrationTest.kt | 2 +- 4 files changed, 15 insertions(+), 13 deletions(-) create mode 100644 mediator/src/main/resources/db/migration/V36__INDEKS_OPPLYSNINGER_OPPLYSNING_ID.sql diff --git a/mediator/src/main/kotlin/no/nav/dagpenger/behandling/mediator/jobber/SlettFjernetOpplysninger.kt b/mediator/src/main/kotlin/no/nav/dagpenger/behandling/mediator/jobber/SlettFjernetOpplysninger.kt index 03685c793..9e0981f86 100644 --- a/mediator/src/main/kotlin/no/nav/dagpenger/behandling/mediator/jobber/SlettFjernetOpplysninger.kt +++ b/mediator/src/main/kotlin/no/nav/dagpenger/behandling/mediator/jobber/SlettFjernetOpplysninger.kt @@ -18,8 +18,8 @@ internal object SlettFjernetOpplysninger { period = 15.minutes.inWholeMilliseconds, action = { try { - if (System.getenv("NAIS_CLUSTER_NAME") == "skrudd-av") { - vaktmesterRepository.slettOpplysninger(antall = 10) + if (System.getenv("NAIS_CLUSTER_NAME") == "DEV-GCP") { + vaktmesterRepository.slettOpplysninger(antall = 1) } else { logger.info { "Sletting av fjernet opplysninger er skrudd av" } } diff --git a/mediator/src/main/kotlin/no/nav/dagpenger/behandling/mediator/repository/VaktmesterPostgresRepo.kt b/mediator/src/main/kotlin/no/nav/dagpenger/behandling/mediator/repository/VaktmesterPostgresRepo.kt index 7c12d79b2..1bed89821 100644 --- a/mediator/src/main/kotlin/no/nav/dagpenger/behandling/mediator/repository/VaktmesterPostgresRepo.kt +++ b/mediator/src/main/kotlin/no/nav/dagpenger/behandling/mediator/repository/VaktmesterPostgresRepo.kt @@ -1,7 +1,6 @@ package no.nav.dagpenger.behandling.mediator.repository import kotliquery.Session -import kotliquery.TransactionalSession import kotliquery.queryOf import kotliquery.sessionOf import kotliquery.using @@ -21,9 +20,10 @@ internal class VaktmesterPostgresRepo { fun slettOpplysninger(antall: Int = 1): List { val slettet = mutableListOf() using(sessionOf(dataSource)) { session -> - session.transaction { tx -> - tx.medLås(låsenøkkel) { - hentAlleOpplysningerSomErFjernet(tx, antall).forEach { kandidat -> + val kandidater = hentAlleOpplysningerSomErFjernet(session, antall) + kandidater.forEach { kandidat -> + session.transaction { tx -> + tx.medLås(låsenøkkel) { withLoggingContext( "behandlingId" to kandidat.behandlingId.toString(), "opplysningerId" to kandidat.opplysningerId.toString(), @@ -42,7 +42,7 @@ internal class VaktmesterPostgresRepo { } slettet.add(opplysningId) } - logger.info { "Slettet ${kandidat.opplysninger().size} opplysninger " } + logger.info { "Slettet ${kandidat.opplysninger().size} opplysninger" } } } } @@ -64,10 +64,10 @@ internal class VaktmesterPostgresRepo { } private fun hentAlleOpplysningerSomErFjernet( - tx: TransactionalSession, + session: Session, antall: Int, ): List { - val kandidater = hentOpplysningerIder(tx, antall) + val kandidater = hentOpplysningerIder(session, antall) //language=PostgreSQL val query = @@ -81,7 +81,7 @@ internal class VaktmesterPostgresRepo { val opplysninger = kandidater.onEach { kandidat -> - tx.run( + session.run( queryOf( query, mapOf("opplysninger_id" to kandidat.opplysningerId), @@ -97,7 +97,7 @@ internal class VaktmesterPostgresRepo { } private fun hentOpplysningerIder( - tx: TransactionalSession, + session: Session, antall: Int, ): List { //language=PostgreSQL @@ -112,7 +112,7 @@ internal class VaktmesterPostgresRepo { """.trimIndent() val opplysningerIder = - tx.run( + session.run( queryOf( test, mapOf("antall" to antall), diff --git a/mediator/src/main/resources/db/migration/V36__INDEKS_OPPLYSNINGER_OPPLYSNING_ID.sql b/mediator/src/main/resources/db/migration/V36__INDEKS_OPPLYSNINGER_OPPLYSNING_ID.sql new file mode 100644 index 000000000..bf80d35a5 --- /dev/null +++ b/mediator/src/main/resources/db/migration/V36__INDEKS_OPPLYSNINGER_OPPLYSNING_ID.sql @@ -0,0 +1,2 @@ +CREATE INDEX idx_opplysninger_opplysning_id ON opplysninger_opplysning (opplysning_id); +CREATE INDEX idx_opplysninger_opplysninger_id ON opplysninger_opplysning (opplysninger_id); \ No newline at end of file diff --git a/mediator/src/test/kotlin/no/nav/dagpenger/behandling/db/PostgresMigrationTest.kt b/mediator/src/test/kotlin/no/nav/dagpenger/behandling/db/PostgresMigrationTest.kt index c2d9435a0..82686983b 100644 --- a/mediator/src/test/kotlin/no/nav/dagpenger/behandling/db/PostgresMigrationTest.kt +++ b/mediator/src/test/kotlin/no/nav/dagpenger/behandling/db/PostgresMigrationTest.kt @@ -10,7 +10,7 @@ class PostgresMigrationTest { fun `Migration scripts are applied successfully`() { withCleanDb { val migrations = runMigration() - migrations shouldBeExactly 34 + migrations shouldBeExactly 35 } } }