Added missing task poller in coordinator
This commit is contained in:
parent
d27d37c4db
commit
30a067bb90
@ -14,7 +14,7 @@ import org.springframework.stereotype.Component
|
|||||||
|
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
class PollerAdministrator(
|
class EventPollerAdministrator(
|
||||||
private val eventPoller: EventPoller
|
private val eventPoller: EventPoller
|
||||||
) : SmartLifecycle {
|
) : SmartLifecycle {
|
||||||
|
|
||||||
|
|||||||
@ -0,0 +1,66 @@
|
|||||||
|
package no.iktdev.mediaprocessing.coordinator
|
||||||
|
|
||||||
|
import kotlinx.coroutines.CoroutineScope
|
||||||
|
import kotlinx.coroutines.Dispatchers
|
||||||
|
import kotlinx.coroutines.launch
|
||||||
|
import no.iktdev.eventi.models.Event
|
||||||
|
import no.iktdev.eventi.models.store.TaskStatus
|
||||||
|
import no.iktdev.eventi.tasks.TaskPollerImplementation
|
||||||
|
import no.iktdev.eventi.tasks.TaskReporter
|
||||||
|
import no.iktdev.mediaprocessing.shared.database.stores.EventStore
|
||||||
|
import no.iktdev.mediaprocessing.shared.database.stores.TaskStore
|
||||||
|
import org.springframework.boot.ApplicationArguments
|
||||||
|
import org.springframework.boot.ApplicationRunner
|
||||||
|
import org.springframework.stereotype.Component
|
||||||
|
import org.springframework.stereotype.Service
|
||||||
|
import java.util.*
|
||||||
|
|
||||||
|
@Component
|
||||||
|
class TaskPollerAdministrator(
|
||||||
|
private val taskPoller: TaskPoller,
|
||||||
|
): ApplicationRunner {
|
||||||
|
override fun run(args: ApplicationArguments?) {
|
||||||
|
CoroutineScope(Dispatchers.Default).launch {
|
||||||
|
taskPoller.start()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Service
|
||||||
|
class TaskPoller(
|
||||||
|
private val reporter: TaskReporter,
|
||||||
|
) : TaskPollerImplementation(
|
||||||
|
taskStore = TaskStore,
|
||||||
|
reporterFactory = { reporter } // én reporter brukes for alle tasks
|
||||||
|
) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Component
|
||||||
|
class DefaultTaskReporter() : TaskReporter {
|
||||||
|
override fun markClaimed(taskId: UUID, workerId: String) {
|
||||||
|
TaskStore.claim(taskId, workerId)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun updateLastSeen(taskId: UUID) {
|
||||||
|
TaskStore.heartbeat(taskId)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun markConsumed(taskId: UUID) {
|
||||||
|
TaskStore.markConsumed(taskId, TaskStatus.Completed)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun updateProgress(taskId: UUID, progress: Int) {
|
||||||
|
// Not to be implemented for this application
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun log(taskId: UUID, message: String) {
|
||||||
|
// Not to be implemented for this application
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun publishEvent(event: Event) {
|
||||||
|
EventStore.persist(event)
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user