diff --git a/module-bahnApi/src/main/kotlin/de/twomartens/timetable/bahnApi/events/ScheduledTaskDeletedEvent.kt b/module-bahnApi/src/main/kotlin/de/twomartens/timetable/bahnApi/events/ScheduledTaskDeletedEvent.kt new file mode 100644 index 0000000..2d892f7 --- /dev/null +++ b/module-bahnApi/src/main/kotlin/de/twomartens/timetable/bahnApi/events/ScheduledTaskDeletedEvent.kt @@ -0,0 +1,7 @@ +package de.twomartens.timetable.bahnApi.events + +import de.twomartens.timetable.bahnApi.tasks.DeleteScheduledTask +import org.springframework.context.ApplicationEvent + +class ScheduledTaskDeletedEvent(source: DeleteScheduledTask) : ApplicationEvent(source) { +} \ No newline at end of file diff --git a/module-bahnApi/src/main/kotlin/de/twomartens/timetable/bahnApi/service/FetchTaskScheduler.kt b/module-bahnApi/src/main/kotlin/de/twomartens/timetable/bahnApi/service/FetchTaskScheduler.kt index 896f009..165c6a3 100644 --- a/module-bahnApi/src/main/kotlin/de/twomartens/timetable/bahnApi/service/FetchTaskScheduler.kt +++ b/module-bahnApi/src/main/kotlin/de/twomartens/timetable/bahnApi/service/FetchTaskScheduler.kt @@ -9,6 +9,7 @@ import de.twomartens.timetable.bahnApi.tasks.StoreTimetableTask import de.twomartens.timetable.model.common.TimetableId import de.twomartens.timetable.model.common.UserId import de.twomartens.timetable.types.HourAtDay +import org.springframework.context.ApplicationEventPublisher import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler import org.springframework.stereotype.Service @@ -24,7 +25,8 @@ class FetchTaskScheduler( private val threadPoolTaskExecutor: ThreadPoolTaskExecutor, private val bahnApiService: BahnApiService, private val bahnDatabaseService: BahnDatabaseService, - private val scheduledFetchTaskRepository: ScheduledFetchTaskRepository + private val scheduledFetchTaskRepository: ScheduledFetchTaskRepository, + private val eventPublisher: ApplicationEventPublisher ) { fun scheduleStoreTask(timetable: BahnTimetable, userId: UserId, tswTimetableId: TimetableId, hourAtDay: HourAtDay) { diff --git a/module-bahnApi/src/main/kotlin/de/twomartens/timetable/bahnApi/tasks/DeleteScheduledTask.kt b/module-bahnApi/src/main/kotlin/de/twomartens/timetable/bahnApi/tasks/DeleteScheduledTask.kt index 8189073..56ed64f 100644 --- a/module-bahnApi/src/main/kotlin/de/twomartens/timetable/bahnApi/tasks/DeleteScheduledTask.kt +++ b/module-bahnApi/src/main/kotlin/de/twomartens/timetable/bahnApi/tasks/DeleteScheduledTask.kt @@ -1,14 +1,17 @@ package de.twomartens.timetable.bahnApi.tasks +import de.twomartens.timetable.bahnApi.events.ScheduledTaskDeletedEvent import de.twomartens.timetable.bahnApi.model.db.ScheduledFetchTask import de.twomartens.timetable.bahnApi.repository.ScheduledFetchTaskRepository import mu.KotlinLogging +import org.springframework.context.ApplicationEventPublisher import org.springframework.scheduling.annotation.Async @Async open class DeleteScheduledTask( private val scheduledFetchTaskRepository: ScheduledFetchTaskRepository, - private val scheduledFetchTask: ScheduledFetchTask + val scheduledFetchTask: ScheduledFetchTask, + private val eventPublisher: ApplicationEventPublisher ) : Runnable { override fun run() { log.info { @@ -18,6 +21,7 @@ open class DeleteScheduledTask( "[time: ${scheduledFetchTask.fetchedDateTime.hour}]" } scheduledFetchTaskRepository.delete(scheduledFetchTask) + eventPublisher.publishEvent(ScheduledTaskDeletedEvent(this)) } companion object {