Separate scheduler for subs (#603)

This commit is contained in:
KirillPamPam
2024-12-10 13:58:21 +04:00
committed by GitHub
parent dd3d521375
commit f138c035ed
2 changed files with 11 additions and 2 deletions

View File

@@ -25,6 +25,8 @@ open class MultistreamsConfig(val beanFactory: ConfigurableListableBeanFactory)
callTargetsHolder: CallTargetsHolder, callTargetsHolder: CallTargetsHolder,
@Qualifier("headScheduler") @Qualifier("headScheduler")
headScheduler: Scheduler, headScheduler: Scheduler,
@Qualifier("subScheduler")
subScheduler: Scheduler,
tracer: Tracer, tracer: Tracer,
multistreamEventsScheduler: Scheduler, multistreamEventsScheduler: Scheduler,
indexConfig: IndexConfig, indexConfig: IndexConfig,
@@ -41,6 +43,7 @@ open class MultistreamsConfig(val beanFactory: ConfigurableListableBeanFactory)
chain, chain,
cachesFactory, cachesFactory,
headScheduler, headScheduler,
subScheduler,
tracer, tracer,
multistreamEventsScheduler, multistreamEventsScheduler,
indexConfig.getByChain(chain), indexConfig.getByChain(chain),
@@ -54,6 +57,7 @@ open class MultistreamsConfig(val beanFactory: ConfigurableListableBeanFactory)
chain: Chain, chain: Chain,
cachesFactory: CachesFactory, cachesFactory: CachesFactory,
headScheduler: Scheduler, headScheduler: Scheduler,
subScheduler: Scheduler,
tracer: Tracer, tracer: Tracer,
multistreamEventsScheduler: Scheduler, multistreamEventsScheduler: Scheduler,
logsOracleConfig: IndexConfig.Index?, logsOracleConfig: IndexConfig.Index?,
@@ -71,7 +75,7 @@ open class MultistreamsConfig(val beanFactory: ConfigurableListableBeanFactory)
headScheduler, headScheduler,
cs.makeCachingReaderBuilder(tracer), cs.makeCachingReaderBuilder(tracer),
cs::localReaderBuilder, cs::localReaderBuilder,
cs.subscriptionBuilder(headScheduler), cs.subscriptionBuilder(subScheduler),
logsOracleConfig, logsOracleConfig,
logsOracleScheduler, logsOracleScheduler,
tracer, tracer,

View File

@@ -41,6 +41,11 @@ open class SchedulersConfig {
return makeScheduler("head-scheduler", 4, monitoringConfig) return makeScheduler("head-scheduler", 4, monitoringConfig)
} }
@Bean
open fun subScheduler(monitoringConfig: MonitoringConfig): Scheduler {
return makeScheduler("sub-scheduler", 4, monitoringConfig)
}
@Bean @Bean
open fun logsOracleScheduler(monitoringConfig: MonitoringConfig): Scheduler { open fun logsOracleScheduler(monitoringConfig: MonitoringConfig): Scheduler {
return makeScheduler("logs-oracle", 4, monitoringConfig) return makeScheduler("logs-oracle", 4, monitoringConfig)
@@ -77,7 +82,7 @@ open class SchedulersConfig {
} }
private fun makeScheduler(name: String, size: Int, monitoringConfig: MonitoringConfig): Scheduler { private fun makeScheduler(name: String, size: Int, monitoringConfig: MonitoringConfig): Scheduler {
return Schedulers.fromExecutorService(makePool(name, size * threadsMultiplier, monitoringConfig)) return Schedulers.fromExecutorService(makePool(name, size, monitoringConfig))
} }
private fun makePool(name: String, size: Int, monitoringConfig: MonitoringConfig): ExecutorService { private fun makePool(name: String, size: Int, monitoringConfig: MonitoringConfig): ExecutorService {