change: Send event when DeleteScheduledTask is executed

This commit is contained in:
2025-09-18 17:16:32 +02:00
parent b75424b499
commit 513acf40c2
3 changed files with 15 additions and 2 deletions
@@ -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) {
}
@@ -9,6 +9,7 @@ import de.twomartens.timetable.bahnApi.tasks.StoreTimetableTask
import de.twomartens.timetable.model.common.TimetableId import de.twomartens.timetable.model.common.TimetableId
import de.twomartens.timetable.model.common.UserId import de.twomartens.timetable.model.common.UserId
import de.twomartens.timetable.types.HourAtDay import de.twomartens.timetable.types.HourAtDay
import org.springframework.context.ApplicationEventPublisher
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor
import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler
import org.springframework.stereotype.Service import org.springframework.stereotype.Service
@@ -24,7 +25,8 @@ class FetchTaskScheduler(
private val threadPoolTaskExecutor: ThreadPoolTaskExecutor, private val threadPoolTaskExecutor: ThreadPoolTaskExecutor,
private val bahnApiService: BahnApiService, private val bahnApiService: BahnApiService,
private val bahnDatabaseService: BahnDatabaseService, private val bahnDatabaseService: BahnDatabaseService,
private val scheduledFetchTaskRepository: ScheduledFetchTaskRepository private val scheduledFetchTaskRepository: ScheduledFetchTaskRepository,
private val eventPublisher: ApplicationEventPublisher
) { ) {
fun scheduleStoreTask(timetable: BahnTimetable, userId: UserId, tswTimetableId: TimetableId, fun scheduleStoreTask(timetable: BahnTimetable, userId: UserId, tswTimetableId: TimetableId,
hourAtDay: HourAtDay) { hourAtDay: HourAtDay) {
@@ -1,14 +1,17 @@
package de.twomartens.timetable.bahnApi.tasks 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.model.db.ScheduledFetchTask
import de.twomartens.timetable.bahnApi.repository.ScheduledFetchTaskRepository import de.twomartens.timetable.bahnApi.repository.ScheduledFetchTaskRepository
import mu.KotlinLogging import mu.KotlinLogging
import org.springframework.context.ApplicationEventPublisher
import org.springframework.scheduling.annotation.Async import org.springframework.scheduling.annotation.Async
@Async @Async
open class DeleteScheduledTask( open class DeleteScheduledTask(
private val scheduledFetchTaskRepository: ScheduledFetchTaskRepository, private val scheduledFetchTaskRepository: ScheduledFetchTaskRepository,
private val scheduledFetchTask: ScheduledFetchTask val scheduledFetchTask: ScheduledFetchTask,
private val eventPublisher: ApplicationEventPublisher
) : Runnable { ) : Runnable {
override fun run() { override fun run() {
log.info { log.info {
@@ -18,6 +21,7 @@ open class DeleteScheduledTask(
"[time: ${scheduledFetchTask.fetchedDateTime.hour}]" "[time: ${scheduledFetchTask.fetchedDateTime.hour}]"
} }
scheduledFetchTaskRepository.delete(scheduledFetchTask) scheduledFetchTaskRepository.delete(scheduledFetchTask)
eventPublisher.publishEvent(ScheduledTaskDeletedEvent(this))
} }
companion object { companion object {