Skip to content

Commit

Permalink
add custom scheduler for each collection task
Browse files Browse the repository at this point in the history
  • Loading branch information
derklaro committed Dec 30, 2024
1 parent bc9c570 commit 888b3af
Show file tree
Hide file tree
Showing 4 changed files with 29 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand Down

0 comments on commit 888b3af

Please sign in to comment.