mirror of https://github.com/usbharu/Hideout.git
fix: ジョブキューの修正 ログの追加
This commit is contained in:
parent
158cd3a6df
commit
0d5fecbd4d
|
@ -32,7 +32,10 @@ class KJobJobQueueParentService : JobQueueParentService {
|
|||
}
|
||||
|
||||
override suspend fun <T, J : HideoutJob<T, J>> scheduleTypeSafe(job: J, jobProps: T) {
|
||||
logger.debug("SCHEDULE Job: {}", job.name)
|
||||
logger.trace("Job props: {}", jobProps)
|
||||
val convert: ScheduleContext<J>.(J) -> Unit = job.convert(jobProps)
|
||||
kjob.schedule(job, convert)
|
||||
logger.debug("SUCCESS Schedule Job: {}", job.name)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@ package dev.usbharu.hideout.core.infrastructure.kjobmongodb
|
|||
|
||||
import com.mongodb.reactivestreams.client.MongoClient
|
||||
import dev.usbharu.hideout.core.external.job.HideoutJob
|
||||
import dev.usbharu.hideout.core.service.job.JobProcessor
|
||||
import dev.usbharu.hideout.core.service.job.JobQueueWorkerService
|
||||
import kjob.core.dsl.JobContextWithProps
|
||||
import kjob.core.dsl.JobRegisterContext
|
||||
|
@ -13,7 +14,10 @@ import org.springframework.stereotype.Service
|
|||
|
||||
@Service
|
||||
@ConditionalOnProperty(name = ["hideout.use-mongodb"], havingValue = "true", matchIfMissing = false)
|
||||
class KJobMongoJobQueueWorkerService(private val mongoClient: MongoClient) : JobQueueWorkerService, AutoCloseable {
|
||||
class KJobMongoJobQueueWorkerService(
|
||||
private val mongoClient: MongoClient,
|
||||
private val jobQueueProcessorList: List<JobProcessor<*, *>>
|
||||
) : JobQueueWorkerService, AutoCloseable {
|
||||
val kjob by lazy {
|
||||
kjob(Mongo) {
|
||||
client = mongoClient
|
||||
|
@ -30,6 +34,14 @@ class KJobMongoJobQueueWorkerService(private val mongoClient: MongoClient) : Job
|
|||
defines.forEach { job ->
|
||||
kjob.register(job.first, job.second)
|
||||
}
|
||||
for (jobProcessor in jobQueueProcessorList) {
|
||||
kjob.register(jobProcessor.job()) {
|
||||
execute {
|
||||
val param = it.convertUnsafe(props)
|
||||
jobProcessor.process(param)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun close() {
|
||||
|
|
|
@ -7,6 +7,7 @@ import kjob.core.Job
|
|||
import kjob.core.dsl.ScheduleContext
|
||||
import kjob.core.kjob
|
||||
import kjob.mongo.Mongo
|
||||
import org.slf4j.LoggerFactory
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty
|
||||
import org.springframework.stereotype.Service
|
||||
|
||||
|
@ -26,15 +27,23 @@ class KjobMongoJobQueueParentService(private val mongoClient: MongoClient) : Job
|
|||
|
||||
@Deprecated("use type safe → scheduleTypeSafe")
|
||||
override suspend fun <J : Job> schedule(job: J, block: ScheduleContext<J>.(J) -> Unit) {
|
||||
logger.debug("SCHEDULE Job: {}", job.name)
|
||||
kjob.schedule(job, block)
|
||||
}
|
||||
|
||||
override suspend fun <T, J : HideoutJob<T, J>> scheduleTypeSafe(job: J, jobProps: T) {
|
||||
logger.debug("SCHEDULE Job: {}", job.name)
|
||||
logger.trace("Job props: {}", jobProps)
|
||||
val convert = job.convert(jobProps)
|
||||
kjob.schedule(job, convert)
|
||||
logger.debug("SUCCESS Job: {}", job.name)
|
||||
}
|
||||
|
||||
override fun close() {
|
||||
kjob.shutdown()
|
||||
}
|
||||
|
||||
companion object {
|
||||
private val logger = LoggerFactory.getLogger(KjobMongoJobQueueParentService::class.java)
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue