Added separate executors

This commit is contained in:
Mikhail Trofimov 2026-07-04 18:26:36 +03:00
parent 2c0525d28d
commit d84763b754
5 changed files with 41 additions and 17 deletions

View file

@ -10,20 +10,40 @@ import java.util.concurrent.Executors;
@Configuration @Configuration
public class ExecutorsConfig { public class ExecutorsConfig {
@Bean(destroyMethod = "shutdown") @Bean(name = "npPipelineExecutorService",
public ExecutorService pipelineExecutorService() { destroyMethod = "shutdown")
public ExecutorService npPipelineExecutorService() {
return Executors.newFixedThreadPool(15, r -> { return Executors.newFixedThreadPool(15, r -> {
Thread t = new Thread(r); Thread t = new Thread(r);
t.setName("pipe-starter-%d".formatted(t.threadId())); t.setName("np-pipe-starter-%d".formatted(t.threadId()));
return t; return t;
}); });
} }
@Bean @Bean(name = "lpPipelineExecutorService",
public ExecutorService saverExecutorService(CreditTrackerSettings creditTrackerSettings) { destroyMethod = "shutdown")
public ExecutorService lpPipelineExecutorService() {
return Executors.newFixedThreadPool(15, r -> {
Thread t = new Thread(r);
t.setName("lp-pipe-starter-%d".formatted(t.threadId()));
return t;
});
}
@Bean("npSaverExecutorService")
public ExecutorService npSaverExecutorService(CreditTrackerSettings creditTrackerSettings) {
return Executors.newFixedThreadPool(creditTrackerSettings.getNpPipeline().parallelRequests(), r -> { return Executors.newFixedThreadPool(creditTrackerSettings.getNpPipeline().parallelRequests(), r -> {
Thread t = new Thread(r); Thread t = new Thread(r);
t.setName("subject-saver-%d".formatted(t.threadId())); t.setName("np-subject-saver-%d".formatted(t.threadId()));
return t;
});
}
@Bean("lpSaverExecutorService")
public ExecutorService lpSaverExecutorService(CreditTrackerSettings creditTrackerSettings) {
return Executors.newFixedThreadPool(creditTrackerSettings.getNpPipeline().parallelRequests(), r -> {
Thread t = new Thread(r);
t.setName("lp-subject-saver-%d".formatted(t.threadId()));
return t; return t;
}); });
} }

View file

@ -1,5 +1,6 @@
package ru.nbch.credit_tracker.service.task; package ru.nbch.credit_tracker.service.task;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import ru.nbch.credit_tracker.config.settings.CreditTrackerSettings; import ru.nbch.credit_tracker.config.settings.CreditTrackerSettings;
import ru.nbch.credit_tracker.config.settings.PipelineSettings; import ru.nbch.credit_tracker.config.settings.PipelineSettings;
@ -12,10 +13,10 @@ public class LpPipelinePackageOrchestrator extends PackageOrchestrator {
private final CreditTrackerSettings creditTrackerSettings; private final CreditTrackerSettings creditTrackerSettings;
public LpPipelinePackageOrchestrator(CreditTrackerSettings creditTrackerSettings, public LpPipelinePackageOrchestrator(CreditTrackerSettings creditTrackerSettings,
UserPackageMapper userPackageMapper, // TODO UserPackageMapper userPackageMapper,
ExecutorService pipelineExecutorService, // TODO @Qualifier("lpPipelineExecutorService") ExecutorService lpPipelineExecutorService,
ExecutorService saverExecutorService) { // TODO @Qualifier("lpSaverExecutorService") ExecutorService lpSaverExecutorService) {
super(userPackageMapper, pipelineExecutorService, saverExecutorService); super(userPackageMapper, lpPipelineExecutorService, lpSaverExecutorService);
this.creditTrackerSettings = creditTrackerSettings; this.creditTrackerSettings = creditTrackerSettings;
} }

View file

@ -1,5 +1,6 @@
package ru.nbch.credit_tracker.service.task; package ru.nbch.credit_tracker.service.task;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import ru.nbch.credit_tracker.config.settings.CreditTrackerSettings; import ru.nbch.credit_tracker.config.settings.CreditTrackerSettings;
import ru.nbch.credit_tracker.config.settings.PipelineSettings; import ru.nbch.credit_tracker.config.settings.PipelineSettings;
@ -12,8 +13,8 @@ public class LpPipelineRecalcOrchestrator extends RecalcOrchestrator{
private final CreditTrackerSettings creditTrackerSettings; private final CreditTrackerSettings creditTrackerSettings;
public LpPipelineRecalcOrchestrator(CreditTrackerSettings creditTrackerSettings, public LpPipelineRecalcOrchestrator(CreditTrackerSettings creditTrackerSettings,
ExecutorService pipelineExecutorService) { // TODO another executor @Qualifier("lpPipelineExecutorService") ExecutorService lpPipelineExecutorService) {
super(pipelineExecutorService); super(lpPipelineExecutorService);
this.creditTrackerSettings = creditTrackerSettings; this.creditTrackerSettings = creditTrackerSettings;
} }

View file

@ -1,5 +1,6 @@
package ru.nbch.credit_tracker.service.task; package ru.nbch.credit_tracker.service.task;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import ru.nbch.credit_tracker.config.settings.CreditTrackerSettings; import ru.nbch.credit_tracker.config.settings.CreditTrackerSettings;
import ru.nbch.credit_tracker.config.settings.PipelineSettings; import ru.nbch.credit_tracker.config.settings.PipelineSettings;
@ -13,9 +14,9 @@ public class NpPipelinePackageOrchestrator extends PackageOrchestrator {
public NpPipelinePackageOrchestrator(CreditTrackerSettings creditTrackerSettings, public NpPipelinePackageOrchestrator(CreditTrackerSettings creditTrackerSettings,
UserPackageMapper userPackageMapper, UserPackageMapper userPackageMapper,
ExecutorService pipelineExecutorService, @Qualifier("npPipelineExecutorService") ExecutorService npPipelineExecutorService,
ExecutorService saverExecutorService) { @Qualifier("npSaverExecutorService") ExecutorService npSaverExecutorService) {
super(userPackageMapper, pipelineExecutorService, saverExecutorService); super(userPackageMapper, npPipelineExecutorService, npSaverExecutorService);
this.creditTrackerSettings = creditTrackerSettings; this.creditTrackerSettings = creditTrackerSettings;
} }

View file

@ -1,5 +1,6 @@
package ru.nbch.credit_tracker.service.task; package ru.nbch.credit_tracker.service.task;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import ru.nbch.credit_tracker.config.settings.CreditTrackerSettings; import ru.nbch.credit_tracker.config.settings.CreditTrackerSettings;
import ru.nbch.credit_tracker.config.settings.PipelineSettings; import ru.nbch.credit_tracker.config.settings.PipelineSettings;
@ -11,8 +12,8 @@ public class NpPipelineRecalcOrchestrator extends RecalcOrchestrator {
private final CreditTrackerSettings creditTrackerSettings; private final CreditTrackerSettings creditTrackerSettings;
public NpPipelineRecalcOrchestrator(CreditTrackerSettings creditTrackerSettings, public NpPipelineRecalcOrchestrator(CreditTrackerSettings creditTrackerSettings,
ExecutorService pipelineExecutorService) { @Qualifier("npPipelineExecutorService")ExecutorService npPipelineExecutorService) {
super(pipelineExecutorService); super(npPipelineExecutorService);
this.creditTrackerSettings = creditTrackerSettings; this.creditTrackerSettings = creditTrackerSettings;
} }