ThreadpoolExecutor с наблюдаемыми - PullRequest
0 голосов
/ 01 ноября 2018

Привет! В настоящее время я использую Schedulers.io () с Observables для моего API, который выполняет сетевые вызовы. У меня есть опасение, что в производственном процессе это может создать много потоков, если есть большой объем запросов. Я ожидаю около 500 000 - 700 000 запросов в день. Является ли Schedulers.io () хорошим кандидатом в этом сценарии.

Или я должен создать пользовательский threadpoolExecutor и использовать его в качестве Schedulers.from (myExecutor)

    //Sample
    ThreadPoolExecutor myExecutor= new ThreadPoolExecutor(corePoolSize, 
    maxPoolSize, poolKeepAliveInMillis, TimeUnit.MILLISECONDS,
                new ArrayBlockingQueue<Runnable>(corePoolSize));

Во всех примерах, которые я видел в Интернете, использовался фиксированный пул потоков, например Schedulers.from (Executors.newFixedThreadPool (n)).

Поддерживает ли планировщик Java Rx ThreadPoolExecutor? Какой из них лучший, пожалуйста, совет.

1 Ответ

0 голосов
/ 01 ноября 2018

RxJava может использовать различные виды планировщиков, например, Schedulers.from(threadPoolExecutor). В одном проекте к потокам предъявлялось строгое требование, чтобы у них было заданное имя, часто с номером, и чтобы они имели ловушку исключений. Использовать Schedulers.from() было легко, чтобы переназначить исполнителя в планировщик.

Кроме того, планировщики Schedulers.io() перерабатывают потоки довольно эффективно. Вы можете сделать дамп потока после большого количества транзакций, чтобы увидеть, что количество потоков относительно ограничено.

...