Unlisting

This commit is contained in:
bskjon 2025-04-27 02:39:43 +02:00
parent 9c6aa304a8
commit 421afb8096
4 changed files with 49 additions and 4 deletions

View File

@ -14,9 +14,21 @@ import no.iktdev.mediaprocessing.shared.common.getAppVersion
import no.iktdev.mediaprocessing.shared.common.toEventsDatabase
import org.springframework.boot.autoconfigure.SpringBootApplication
import org.springframework.boot.runApplication
import org.springframework.transaction.annotation.Transactional
import javax.annotation.PreDestroy
@SpringBootApplication
class ConvertApplication
class ConvertApplication {
@PreDestroy
fun onShutdown() {
doTransactionalCleanup()
}
@Transactional
fun doTransactionalCleanup() {
runnerManager.unlist()
}
}
val ioCoroutine = CoroutinesIO()
val defaultCoroutine = CoroutinesDefault()
@ -56,4 +68,4 @@ fun main(args: Array<String>) {
runApplication<ConvertApplication>(*args)
log.info { "App Version: ${getAppVersion()}" }
}
//private val logger = KotlinLogging.logger {}
//private val logger = KotlinLogging.logger {}

View File

@ -17,6 +17,8 @@ import no.iktdev.streamit.library.db.tables.helper.data_video
import org.springframework.boot.autoconfigure.SpringBootApplication
import org.springframework.boot.runApplication
import org.springframework.context.annotation.Bean
import org.springframework.transaction.annotation.Transactional
import javax.annotation.PreDestroy
val log = KotlinLogging.logger {}
lateinit var eventDatabase: EventsDatabase
@ -32,6 +34,16 @@ class CoordinatorApplication {
return eventsManager
}
@PreDestroy
fun onShutdown() {
doTransactionalCleanup()
}
@Transactional
fun doTransactionalCleanup() {
runnerManager.unlist()
}
}
private lateinit var storeDatabase: MySqlDataSource
@ -120,4 +132,4 @@ fun printSharedConfig() {
/*log.info { "Database: ${DatabaseConfig.database} @ ${DatabaseConfig.address}:${DatabaseConfig.port}" }
log.info { "Username: ${DatabaseConfig.username}" }
log.info { "Password: ${if (DatabaseConfig.password.isNullOrBlank()) "Is not set" else "Is set"}" }*/
}
}

View File

@ -17,7 +17,8 @@ import org.springframework.boot.autoconfigure.SpringBootApplication
import org.springframework.boot.runApplication
import org.springframework.scheduling.annotation.EnableScheduling
import org.springframework.scheduling.annotation.Scheduled
import org.springframework.transaction.annotation.Transactional
import javax.annotation.PreDestroy
private val logger = KotlinLogging.logger {}
@ -27,6 +28,17 @@ val defaultCoroutine = CoroutinesDefault()
@SpringBootApplication
class ProcesserApplication {
@PreDestroy
fun onShutdown() {
doTransactionalCleanup()
}
@Transactional
fun doTransactionalCleanup() {
runnerManager.unlist()
}
}
private lateinit var eventsDatabase: MySqlDataSource

View File

@ -4,9 +4,12 @@ import mu.KotlinLogging
import no.iktdev.eventi.database.DataSource
import no.iktdev.eventi.database.executeOrException
import no.iktdev.eventi.database.withDirtyRead
import no.iktdev.eventi.database.withTransaction
import no.iktdev.mediaprocessing.shared.common.database.tables.runners
import no.iktdev.mediaprocessing.shared.common.getAppVersion
import org.jetbrains.exposed.sql.SqlExpressionBuilder.eq
import org.jetbrains.exposed.sql.and
import org.jetbrains.exposed.sql.deleteWhere
import org.jetbrains.exposed.sql.insert
import org.jetbrains.exposed.sql.select
import java.util.UUID
@ -50,6 +53,12 @@ class RunnerManager(private val dataSource: DataSource, val startId: String = UU
} ?: true
} ?: true
}
fun unlist() {
withTransaction(dataSource.database) {
runners.deleteWhere { (runners.startId eq startId) and (runners.application eq applicationName) }
}
}
}
enum class ActiveMode {