Я хочу запустить и забыть HTTP-вызовы, которые возвращают Observable.Я обнаружил, что это блокирует основной поток - PullRequest
0 голосов
/ 07 декабря 2018
client.cacheLoad(((CxyAccount) account).getAccountNumber(), Cxy.getTasTrackingNumber(messageContext))
  .subscribeOn(Schedulers.io())
  .subscribe();

client.cacheLoad(((CxyAccount) account).getAccountNumber(), Cxy.getTasTrackingNumber(messageContext))
// **Returns an Observable.**

1 Ответ

0 голосов
/ 10 декабря 2018

Если client.cacheLoad() блокирует основной поток, вы можете использовать следующее:

Observable.fromCallable( () -> client.cacheLoad(((CxyAccount) account).getAccountNumber(), Cxy.getTasTrackingNumber(messageContext)) )
  .subscribeOn( Schedulers.io() )
  .subscribe();

Это запустит операцию client.cacheLoad() в одном из потоков, предоставляемых планировщиками Schedulers.io().

...