mirror of https://github.com/usbharu/Hideout.git
feat: 型安全なジョブキューのプロセッサーを追加
This commit is contained in:
parent
dcac609b94
commit
1e8f49b554
|
@ -1,14 +1,14 @@
|
|||
package dev.usbharu.hideout.core.infrastructure.kjobexposed
|
||||
|
||||
import dev.usbharu.hideout.core.external.job.HideoutJob
|
||||
import dev.usbharu.hideout.core.service.job.JobQueueWorkerService
|
||||
import kjob.core.dsl.JobContextWithProps
|
||||
import kjob.core.dsl.JobRegisterContext
|
||||
import kjob.core.dsl.KJobFunctions
|
||||
import kjob.core.kjob
|
||||
import org.jetbrains.exposed.sql.transactions.TransactionManager
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty
|
||||
import org.springframework.stereotype.Service
|
||||
import dev.usbharu.hideout.core.external.job.HideoutJob as HJ
|
||||
import kjob.core.dsl.JobContextWithProps as JCWP
|
||||
|
||||
@Service
|
||||
@ConditionalOnProperty(name = ["hideout.use-mongodb"], havingValue = "false", matchIfMissing = true)
|
||||
|
@ -23,9 +23,7 @@ class KJobJobQueueWorkerService() : JobQueueWorkerService {
|
|||
}.start()
|
||||
}
|
||||
|
||||
override fun init(
|
||||
defines: List<Pair<HJ, JobRegisterContext<HJ, JCWP<HJ>>.(HJ) -> KJobFunctions<HJ, JCWP<HJ>>>>
|
||||
) {
|
||||
override fun <T, R : HideoutJob<T, R>> init(defines: List<Pair<R, JobRegisterContext<R, JobContextWithProps<R>>.(R) -> KJobFunctions<R, JobContextWithProps<R>>>>) {
|
||||
defines.forEach { job ->
|
||||
kjob.register(job.first, job.second)
|
||||
}
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
package dev.usbharu.hideout.core.service.job
|
||||
|
||||
import dev.usbharu.hideout.core.external.job.HideoutJob
|
||||
|
||||
interface JobProcessorService<T, R : HideoutJob<T, R>> {
|
||||
suspend fun process(param: T)
|
||||
suspend fun job(): Class<R>
|
||||
}
|
|
@ -8,7 +8,7 @@ import kjob.core.dsl.JobRegisterContext as JRC
|
|||
|
||||
@Service
|
||||
interface JobQueueWorkerService {
|
||||
fun init(
|
||||
defines: List<Pair<HJ, JRC<HJ, JCWP<HJ>>.(HJ) -> KJobFunctions<HJ, JCWP<HJ>>>>
|
||||
fun <T, R : HJ<T, R>> init(
|
||||
defines: List<Pair<R, JRC<R, JCWP<R>>.(R) -> KJobFunctions<R, JCWP<R>>>>
|
||||
)
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue