diff --git a/src/main/java/no/nav/bidrag/dokument/arkiv/consumer/InnsendingConsumer.kt b/src/main/java/no/nav/bidrag/dokument/arkiv/consumer/InnsendingConsumer.kt index db4cf062..cef4690c 100644 --- a/src/main/java/no/nav/bidrag/dokument/arkiv/consumer/InnsendingConsumer.kt +++ b/src/main/java/no/nav/bidrag/dokument/arkiv/consumer/InnsendingConsumer.kt @@ -9,6 +9,8 @@ import org.springframework.beans.factory.annotation.Qualifier import org.springframework.beans.factory.annotation.Value import org.springframework.http.HttpEntity import org.springframework.http.HttpMethod +import org.springframework.retry.annotation.Backoff +import org.springframework.retry.annotation.Retryable import org.springframework.stereotype.Service import org.springframework.web.client.HttpStatusCodeException import org.springframework.web.client.RestOperations @@ -39,6 +41,7 @@ class InnsendingConsumer( } } + @Retryable(maxAttempts = 3, backoff = Backoff(delay = 500, maxDelay = 1500, multiplier = 2.0)) fun hentEttersendingsoppgave(oppgave: HentEtterseningsoppgaveRequest): List { try { return executeMedMetrics(createUri()) { diff --git a/src/main/java/no/nav/bidrag/dokument/arkiv/service/InnsendingService.kt b/src/main/java/no/nav/bidrag/dokument/arkiv/service/InnsendingService.kt index 8a444f20..78a2f451 100644 --- a/src/main/java/no/nav/bidrag/dokument/arkiv/service/InnsendingService.kt +++ b/src/main/java/no/nav/bidrag/dokument/arkiv/service/InnsendingService.kt @@ -20,12 +20,27 @@ class InnsendingService(private val innsendingConsumer: InnsendingConsumer) { val gjelder = journalpost.hentGjelderId() val ettersendingsoppgave = journalpost.ettersendingsoppgave() ?: return null - val ettersendingsoppgaver = innsendingConsumer.hentEttersendingsoppgave( - HentEtterseningsoppgaveRequest(gjelder!!, ettersendingsoppgave.skjemaId), + val ettersendingsoppgaver = hentEttersendingsoppgaver( + gjelder!!, + ettersendingsoppgave.skjemaId, ) return ettersendingsoppgaver.find { it.innsendingsId == ettersendingsoppgave.innsendingsId } } + fun hentEttersendingsoppgaver(gjelderId: String, skjemaId: String): List { + try { + return innsendingConsumer.hentEttersendingsoppgave( + HentEtterseningsoppgaveRequest( + gjelderId, + skjemaId, + ), + ) + } catch (e: Exception) { + LOGGER.error("Feil ved henting av ettersendingsoppgaver", e) + return emptyList() + } + } + fun hentEttersendingsoppgaverOpprettetEtterJournalpost( journalpost: Journalpost, ettersending: OpprettEttersendingsppgaveDto, @@ -33,11 +48,9 @@ class InnsendingService(private val innsendingConsumer: InnsendingConsumer) { try { val gjelder = journalpost.hentGjelderId() - val eksisterendeOppgaver = innsendingConsumer.hentEttersendingsoppgave( - HentEtterseningsoppgaveRequest( - gjelder!!, - ettersending.skjemaId, - ), + val eksisterendeOppgaver = hentEttersendingsoppgaver( + gjelder!!, + ettersending.skjemaId, ) return eksisterendeOppgaver.filter { it.opprettetDato.toLocalDate() >= journalpost.hentDatoJournalfort() } } catch (e: Exception) {