Updated using dispatcher scoped on executor

This commit is contained in:
Brage 2023-07-24 16:20:29 +02:00
parent 7e9588a9e5
commit 28082d0953
2 changed files with 12 additions and 11 deletions

View File

@ -23,6 +23,7 @@ open class Daemon(open val executable: String, val daemonInterface: IDaemon) {
if (resultCode == 0) { if (resultCode == 0) {
daemonInterface.onEnded() daemonInterface.onEnded()
} else daemonInterface.onError(resultCode) } else daemonInterface.onError(resultCode)
logger.info { "Daemon ended: $resultCode" }
return resultCode return resultCode
} }
} }

View File

@ -1,7 +1,7 @@
package no.iktdev.streamit.content.encode.runner package no.iktdev.streamit.content.encode.runner
import kotlinx.coroutines.*
import no.iktdev.streamit.content.encode.EncodeEnv import no.iktdev.streamit.content.encode.EncodeEnv
import kotlinx.coroutines.runBlocking
import mu.KotlinLogging import mu.KotlinLogging
import no.iktdev.streamit.content.common.CommonConfig import no.iktdev.streamit.content.common.CommonConfig
import no.iktdev.streamit.content.common.dto.reader.work.EncodeWork import no.iktdev.streamit.content.common.dto.reader.work.EncodeWork
@ -32,19 +32,19 @@ class RunnerCoordinator {
TimeUnit.MILLISECONDS, TimeUnit.MILLISECONDS,
LinkedBlockingQueue() LinkedBlockingQueue()
) )
val dispatcher: CoroutineDispatcher = executor.asCoroutineDispatcher()
val scope = CoroutineScope(dispatcher)
fun addEncodeMessageToQueue(message: Message) { fun addEncodeMessageToQueue(message: Message) {
executor.execute { scope.launch {
try { try {
runBlocking { if (message.data != null && message.data is EncodeWork) {
if (message.data != null && message.data is EncodeWork) { val data: EncodeWork = message.data as EncodeWork
val data: EncodeWork = message.data as EncodeWork val encodeDaemon = EncodeDaemon(message.referenceId, data, encodeListener)
val encodeDaemon = EncodeDaemon(message.referenceId, data, encodeListener) logger.info { "${message.referenceId} Starting encoding ${data.workId}" }
logger.info { "${message.referenceId} Starting encoding ${data.workId}" } encodeDaemon.runUsingWorkItem()
encodeDaemon.runUsingWorkItem() } else {
} else { producer.sendMessage(KafkaEvents.EVENT_ENCODER_STARTED_VIDEO_FILE.event, message.withNewStatus(Status(StatusType.ERROR, "Data is not an instance of EncodeWork or null")))
producer.sendMessage(KafkaEvents.EVENT_ENCODER_STARTED_VIDEO_FILE.event, message.withNewStatus(Status(StatusType.ERROR, "Data is not an instance of EncodeWork or null")))
}
} }
} catch (e: Exception) { } catch (e: Exception) {
e.printStackTrace() e.printStackTrace()