diff --git a/info-collector/src/main/java/tools/simrail/backend/collector/configuration/SchedulerConfiguration.java b/info-collector/src/main/java/tools/simrail/backend/collector/configuration/SchedulerConfiguration.java index 2b08c4a..cbcc208 100644 --- a/info-collector/src/main/java/tools/simrail/backend/collector/configuration/SchedulerConfiguration.java +++ b/info-collector/src/main/java/tools/simrail/backend/collector/configuration/SchedulerConfiguration.java @@ -53,4 +53,25 @@ public class SchedulerConfiguration { var executor = Executors.newSingleThreadScheduledExecutor(threadFactory); return new ConcurrentTaskScheduler(executor); } + + @Bean(name = "dispatch_post_collect_scheduler") + public @Nonnull TaskScheduler dispatchPostCollectionTaskScheduler() { + var threadFactory = new CustomizableThreadFactory("dispatch-post-collector-thread-"); + var executor = Executors.newSingleThreadScheduledExecutor(threadFactory); + return new ConcurrentTaskScheduler(executor); + } + + @Bean(name = "server_collect_scheduler") + public @Nonnull TaskScheduler serverCollectionTaskScheduler() { + var threadFactory = new CustomizableThreadFactory("server-collector-thread-"); + var executor = Executors.newSingleThreadScheduledExecutor(threadFactory); + return new ConcurrentTaskScheduler(executor); + } + + @Bean(name = "vehicle_collect_scheduler") + public @Nonnull TaskScheduler vehicleCollectionTaskScheduler() { + var threadFactory = new CustomizableThreadFactory("vehicle-collector-thread-"); + var executor = Executors.newSingleThreadScheduledExecutor(threadFactory); + return new ConcurrentTaskScheduler(executor); + } } diff --git a/info-collector/src/main/java/tools/simrail/backend/collector/dispatchpost/SimRailDispatchPostCollector.java b/info-collector/src/main/java/tools/simrail/backend/collector/dispatchpost/SimRailDispatchPostCollector.java index 3f3d90f..e0e6483 100644 --- a/info-collector/src/main/java/tools/simrail/backend/collector/dispatchpost/SimRailDispatchPostCollector.java +++ b/info-collector/src/main/java/tools/simrail/backend/collector/dispatchpost/SimRailDispatchPostCollector.java @@ -73,7 +73,12 @@ public SimRailDispatchPostCollector( this.dispatchPostIdFactory = new UuidV5Factory(SimRailDispatchPostEntity.ID_NAMESPACE); } - @Scheduled(initialDelay = 0, fixedRate = 7, timeUnit = TimeUnit.SECONDS) + @Scheduled( + initialDelay = 0, + fixedRate = 7, + timeUnit = TimeUnit.SECONDS, + scheduler = "dispatch_post_collect_scheduler" + ) public void collectDispatchPostInformation() { var servers = this.serverService.getServers(); for (var server : servers) { diff --git a/info-collector/src/main/java/tools/simrail/backend/collector/server/SimRailServerCollector.java b/info-collector/src/main/java/tools/simrail/backend/collector/server/SimRailServerCollector.java index fdfae7e..e1ae7cc 100644 --- a/info-collector/src/main/java/tools/simrail/backend/collector/server/SimRailServerCollector.java +++ b/info-collector/src/main/java/tools/simrail/backend/collector/server/SimRailServerCollector.java @@ -80,7 +80,7 @@ public final class SimRailServerCollector implements SimRailServerService { /** * Collects the information of all SimRail servers every 30 seconds. */ - @Scheduled(initialDelay = 0, fixedRate = 30, timeUnit = TimeUnit.SECONDS) + @Scheduled(initialDelay = 0, fixedRate = 30, timeUnit = TimeUnit.SECONDS, scheduler = "server_collect_scheduler") public void collectServerInformation() { // collect further information about the server, such as the timezone // on every second collection run (every 60 seconds) diff --git a/info-collector/src/main/java/tools/simrail/backend/collector/vehicle/JourneyVehicleCollector.java b/info-collector/src/main/java/tools/simrail/backend/collector/vehicle/JourneyVehicleCollector.java index 1a3e8d1..4ec16ff 100644 --- a/info-collector/src/main/java/tools/simrail/backend/collector/vehicle/JourneyVehicleCollector.java +++ b/info-collector/src/main/java/tools/simrail/backend/collector/vehicle/JourneyVehicleCollector.java @@ -85,7 +85,7 @@ public JourneyVehicleCollector( } @Transactional - @Scheduled(initialDelay = 1, fixedDelay = 5, timeUnit = TimeUnit.MINUTES) + @Scheduled(initialDelay = 1, fixedDelay = 5, timeUnit = TimeUnit.MINUTES, scheduler = "vehicle_collect_scheduler") public void collectJourneyVehicles() { // collect the scheduled/predicted vehicle compositions first var servers = this.serverService.getServers();