2015-05-04 4 views
0

Как увеличить количество потоков, используя пул потоков мой код выглядит следующим образом,увеличение нити подсчитывать весной реактора AsyncTaskExecutor

@SpringBootApplication 
@EnableReactor 
public class Application implements CommandLineRunner { 
    @Autowired 
    private Reactor reactor 

    @Bean 
    Reactor createReactor(Environment env) { 
    return Reactors.reactor() 
      .env(env) 
      .dispatcher(Environment.THREAD_POOL) 
      .get(); 
    } 

Добавление следующий код не увеличивает количество потоков, которая закреплена по умолчанию - количество ядер на машине.

@Bean 
public AsyncTaskExecutor workQueueAsyncTaskExecutor(Environment env) { 
    return new WorkQueueAsyncTaskExecutor(env) 
     .setName("workQueueExecutor") 
     .setBacklog(2048) 
     .setThreads(20) 
     .setWaitStrategy(new YieldingWaitStrategy()); 
} 

Как установить количество потоков для моей переменной реактора?

Если я удаляю фасоль createReactor, реактор отлично работает, это по умолчанию RingBuffer одной нитью. С этим компонентом и спецификацией THREAD_POOL запускаются потоки, равные количеству ядер на машине. Я просто пытаюсь понять, как я могу увеличить, что рассчитывать вручную ...

Благодаря

ответ

0

он ответил @jbrisbin на дифракционной решетке, https://gitter.im/reactor/reactor?at=5548f40f52bceea22c3814e0

только для удобства, ответ заключается в создании фасоль для диспетчера и ссылаться на него со стороны создания реагента

@Bean 
Reactor createReactor(Environment env) { 
    Reactor r = Reactors.reactor().env(env).dispatcher(createDispatcher()).get(); 
    return r; 
} 

@Bean 
Dispatcher createDispatcher() { 
    Dispatcher d = new WorkQueueDispatcher("multThreadedQueueDispatcher", 20, 2048, null); 
    return d; 
}