@@ -3,7 +3,9 @@ package no.nav.emottak.ebms.processing
3
3
import io.ktor.client.call.body
4
4
import io.ktor.client.plugins.ClientRequestException
5
5
import io.ktor.http.HttpStatusCode
6
+ import kotlinx.coroutines.Dispatchers
6
7
import kotlinx.coroutines.runBlocking
8
+ import kotlinx.coroutines.withContext
7
9
import no.nav.emottak.ebms.PayloadProcessingClient
8
10
import no.nav.emottak.ebms.logger
9
11
import no.nav.emottak.ebms.model.Acknowledgment
@@ -20,7 +22,7 @@ import no.nav.emottak.melding.model.PayloadResponse
20
22
21
23
class ProcessingService (private val httpClient : PayloadProcessingClient ) {
22
24
23
- private fun processMessage (
25
+ private suspend fun processMessage (
24
26
payloadMessage : PayloadMessage ,
25
27
payloadProcessing : PayloadProcessing ,
26
28
direction : Direction
@@ -35,9 +37,11 @@ class ProcessingService(private val httpClient: PayloadProcessingClient) {
35
37
)
36
38
Pair (
37
39
payloadMessage.copy(
38
- payload = runBlocking {
39
- httpClient.postPayloadRequest(payloadRequest)
40
- }.processedPayload!!
40
+ payload = withContext(Dispatchers .IO ) {
41
+ runBlocking {
42
+ httpClient.postPayloadRequest(payloadRequest)
43
+ }.processedPayload!!
44
+ }
41
45
),
42
46
direction
43
47
)
@@ -77,17 +81,17 @@ class ProcessingService(private val httpClient: PayloadProcessingClient) {
77
81
private fun fail (fail : EbmsFail ) {
78
82
}
79
83
80
- fun processSyncIn (message : PayloadMessage , payloadProcessing : PayloadProcessing ? ): Pair <PayloadMessage , Direction > {
84
+ suspend fun processSyncIn (message : PayloadMessage , payloadProcessing : PayloadProcessing ? ): Pair <PayloadMessage , Direction > {
81
85
if (payloadProcessing == null ) throw Exception (" Processing information is missing for ${message.messageId} " )
82
86
return processMessage(message, payloadProcessing, Direction .IN )
83
87
}
84
88
85
- fun proccessSyncOut (payloadMessage : PayloadMessage , payloadProcessing : PayloadProcessing ? ): PayloadMessage {
89
+ suspend fun proccessSyncOut (payloadMessage : PayloadMessage , payloadProcessing : PayloadProcessing ? ): PayloadMessage {
86
90
if (payloadProcessing == null ) throw Exception (" Processing information is missing for ${payloadMessage.messageId} " )
87
91
return processMessage(payloadMessage, payloadProcessing, Direction .OUT ).first
88
92
}
89
93
90
- fun processAsync (message : EbmsMessage , payloadProcessing : PayloadProcessing ? ) {
94
+ suspend fun processAsync (message : EbmsMessage , payloadProcessing : PayloadProcessing ? ) {
91
95
if (payloadProcessing == null ) throw Exception (" Processing information is missing for ${message.messageId} " )
92
96
when (message) {
93
97
is Acknowledgment -> acknowledgment(message)
0 commit comments