Skip to content

Commit

Permalink
Parallell henting av antall med/uten reservasjoner i køer (for avdeli…
Browse files Browse the repository at this point in the history
…ngsleder) (#2837)

* Parallell henting av antall med/uten reservasjoner i køer (for avdelingsleder)

* Legger på context for opentel
  • Loading branch information
mbolstad authored Jan 2, 2025
1 parent dbdb510 commit b32dc34
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 21 deletions.
26 changes: 6 additions & 20 deletions src/main/kotlin/no/nav/k9/los/nyoppgavestyring/ko/OppgaveKoApis.kt
Original file line number Diff line number Diff line change
Expand Up @@ -163,21 +163,7 @@ fun Route.OppgaveKoApis() {
if (pepClient.harBasisTilgang()) {
val oppgavekøId = call.parameters["id"]!!
val skjermet = pepClient.harTilgangTilKode6()
val antallUtenReserverte = OpentelemetrySpanUtil.span("OppgaveKoTjeneste.hentAntallOppgaverForKø") {
oppgaveKoTjeneste.hentAntallOppgaverForKø(
oppgavekøId.toLong(),
true,
skjermet
)
}
val antallMedReserverte = OpentelemetrySpanUtil.span("OppgaveKoTjeneste.hentAntallOppgaverForKø") {
oppgaveKoTjeneste.hentAntallOppgaverForKø(
oppgavekøId.toLong(),
false,
skjermet
)
}
call.respond(AntallOppgaverOgReserverte(antallUtenReserverte, antallMedReserverte))
call.respond(oppgaveKoTjeneste.hentAntallMedOgUtenReserverteForKø(oppgavekøId.toLong(), skjermet))
} else {
call.respond(HttpStatusCode.Forbidden)
}
Expand All @@ -190,11 +176,11 @@ fun Route.OppgaveKoApis() {
val oppgavekøId = call.parameters["id"]!!
val skjermet = pepClient.harTilgangTilKode6()
val antallUtenReserverte = OpentelemetrySpanUtil.span("OppgaveKoTjeneste.hentAntallOppgaverForKø") {
oppgaveKoTjeneste.hentAntallOppgaverForKø(
oppgavekøId.toLong(),
true,
skjermet
)
oppgaveKoTjeneste.hentAntallOppgaverForKø(
oppgavekøId.toLong(),
true,
skjermet
)
}
call.respond(AntallOppgaver(antallUtenReserverte))
} else {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,12 @@
package no.nav.k9.los.nyoppgavestyring.ko

import io.opentelemetry.api.trace.Span
import io.opentelemetry.extension.kotlin.asContextElement
import io.opentelemetry.instrumentation.annotations.WithSpan
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.async
import kotlinx.coroutines.channels.Channel
import kotlinx.coroutines.coroutineScope
import kotlinx.coroutines.runBlocking
import kotliquery.TransactionalSession
import no.nav.k9.los.domene.lager.oppgave.v2.TransactionalManager
Expand Down Expand Up @@ -120,6 +125,26 @@ class OppgaveKoTjeneste(
}
}

@WithSpan
suspend fun hentAntallMedOgUtenReserverteForKø(
oppgaveKoId: Long,
skjermet: Boolean,
): AntallOppgaverOgReserverte {
return coroutineScope {
val antallUtenReserverte = async(Dispatchers.IO + Span.current().asContextElement()) {
hentAntallOppgaverForKø(oppgaveKoId, true, skjermet)
}
val antallMedReserverte = async(Dispatchers.IO + Span.current().asContextElement()) {
hentAntallOppgaverForKø(oppgaveKoId, false, skjermet)
}

AntallOppgaverOgReserverte(
antallUtenReserverte.await(),
antallMedReserverte.await()
)
}
}

@WithSpan
fun hentAntallOppgaverForKø(
oppgaveKoId: Long,
Expand Down Expand Up @@ -257,7 +282,13 @@ class OppgaveKoTjeneste(
}

@WithSpan
fun kopier(kopierFraOppgaveId: Long, tittel: String, taMedQuery: Boolean, taMedSaksbehandlere: Boolean, skjermet: Boolean): OppgaveKo {
fun kopier(
kopierFraOppgaveId: Long,
tittel: String,
taMedQuery: Boolean,
taMedSaksbehandlere: Boolean,
skjermet: Boolean
): OppgaveKo {
val= oppgaveKoRepository.kopier(kopierFraOppgaveId, tittel, taMedQuery, taMedSaksbehandlere, skjermet)
runBlocking {
køpåvirkendeHendelseChannel.send(Kødefinisjon(kø.id))
Expand Down

0 comments on commit b32dc34

Please sign in to comment.