From bb623304044b06acd7cfe3961ae969a0545ef844 Mon Sep 17 00:00:00 2001 From: Jim Martens Date: Sat, 6 Jan 2024 14:53:43 +0100 Subject: [PATCH] change: Use mongo template to bulk insert new tasks --- .../bahnApi/service/ScheduledTaskService.kt | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/module-bahnApi/src/main/kotlin/de/twomartens/timetable/bahnApi/service/ScheduledTaskService.kt b/module-bahnApi/src/main/kotlin/de/twomartens/timetable/bahnApi/service/ScheduledTaskService.kt index 64e2c6c..c69107b 100644 --- a/module-bahnApi/src/main/kotlin/de/twomartens/timetable/bahnApi/service/ScheduledTaskService.kt +++ b/module-bahnApi/src/main/kotlin/de/twomartens/timetable/bahnApi/service/ScheduledTaskService.kt @@ -15,6 +15,8 @@ import mu.KotlinLogging import org.springframework.boot.context.event.ApplicationReadyEvent import org.springframework.cloud.kubernetes.commons.leader.LeaderProperties import org.springframework.context.event.EventListener +import org.springframework.data.mongodb.core.BulkOperations +import org.springframework.data.mongodb.core.MongoTemplate import org.springframework.integration.leader.event.OnGrantedEvent import org.springframework.stereotype.Service import java.time.Instant @@ -27,7 +29,8 @@ class ScheduledTaskService( private val leaderProperties: LeaderProperties, private val scheduledFetchTaskRepository: ScheduledFetchTaskRepository, private val taskFactory: TaskFactory, - private val fetchTaskScheduler: FetchTaskScheduler + private val fetchTaskScheduler: FetchTaskScheduler, + private val mongoTemplate: MongoTemplate ) { private var createdTime: Instant = Instant.EPOCH private var lastUpdate: Instant = Instant.EPOCH @@ -121,14 +124,13 @@ class ScheduledTaskService( } private fun storeTasksInDatabaseAndStoreCreationTime(newTasks: List) { - val savedEntities = scheduledFetchTaskRepository.saveAll(newTasks) - storeCreationTime(savedEntities) - } - - private fun storeCreationTime(savedEntities: MutableList) { - if (savedEntities.isNotEmpty()) { - createdTime = savedEntities[savedEntities.lastIndex].created + if (newTasks.isNotEmpty()) { + createdTime = newTasks.first().created } + mongoTemplate.bulkOps(BulkOperations.BulkMode.UNORDERED, + ScheduledFetchTask::class.java) + .insert(newTasks) + .execute() } private fun publishTasksCreatedEvent() {