Class ExecutorConfiguration
java.lang.Object
com.github._1c_syntax.bsl.languageserver.infrastructure.ExecutorConfiguration
Конфигурация исполнителей для обработки асинхронных задач.
ForkJoinPool-исполнители (в которых запускаются parallelStream()) создаются
per-workspace — каждый воркспейс получает свой набор пулов. Worker threads
устанавливают workspace URI в ThreadLocal при старте (onStart()),
что гарантирует корректную работу workspace-scoped proxy в fork-задачах.
Исключение: computeConfigurationExecutor — singleton, т.к. вызывает
внешнюю библиотеку MDClasses, не использующую ThreadLocal из BSL LS.
Остальные исполнители реализуются через ThreadPoolTaskExecutor (cached thread pool)
с TaskDecorator для прокидывания контекста.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptioncompositeTaskDecorator(SentryTaskDecorator sentryDecorator, TaskDecorator contextPropagatingDecorator) sentryExecutor(TaskDecorator compositeTaskDecorator) textDocumentServiceExecutor(TaskDecorator compositeTaskDecorator) workspaceServiceExecutor(TaskDecorator compositeTaskDecorator)
-
Constructor Details
-
ExecutorConfiguration
public ExecutorConfiguration()
-
-
Method Details
-
sentryDecorator
-
contextPropagatingDecorator
-
compositeTaskDecorator
@Bean public TaskDecorator compositeTaskDecorator(SentryTaskDecorator sentryDecorator, TaskDecorator contextPropagatingDecorator) -
textDocumentServiceExecutor
@Bean(destroyMethod="shutdown") public ThreadPoolTaskExecutor textDocumentServiceExecutor(TaskDecorator compositeTaskDecorator) -
workspaceServiceExecutor
@Bean(destroyMethod="shutdown") public ThreadPoolTaskExecutor workspaceServiceExecutor(TaskDecorator compositeTaskDecorator) -
sentryExecutor
@Bean(destroyMethod="shutdown") public ThreadPoolTaskExecutor sentryExecutor(TaskDecorator compositeTaskDecorator) -
populateContextExecutor
@Bean(destroyMethod="shutdown") @Scope(value="workspace", proxyMode=INTERFACES) public ExecutorService populateContextExecutor() -
computeConfigurationExecutor
-
diagnosticComputerExecutor
@Bean(destroyMethod="shutdown") @Scope(value="workspace", proxyMode=INTERFACES) public ExecutorService diagnosticComputerExecutor() -
analyzeOnStartExecutor
@Bean(destroyMethod="shutdown") @Scope(value="workspace", proxyMode=INTERFACES) public ExecutorService analyzeOnStartExecutor() -
semanticTokensExecutor
@Bean(destroyMethod="shutdown") @Scope(value="workspace", proxyMode=INTERFACES) public ExecutorService semanticTokensExecutor() -
cliExecutor
@Bean(destroyMethod="shutdown") @Scope(value="workspace", proxyMode=INTERFACES) public ExecutorService cliExecutor()
-