Страницы

Поиск по вопросам

среда, 27 ноября 2019 г.

Как реализовать очередь запросов?

#java #android #rxjava #rxandroid


Исходные данные:

Есть проект, который использует методы из SDK стороннего проекта (асинхронные методы
для работы с их сервером с параметром-колбэком) и содержит в себе Retrofit2 + OkHttp
+ Rx для работы с сервером напрямую. Для удобства используются лямбды.

Задача:

Необходимо, чтобы все запросы (и из SDK, и через Retrofit) выполнялись не чаще чем
5 раз в секунду, а если лимит превышен, выполнялись с задержкой.

Вопрос: 

Как это реализовать? Первое, что приходит в голову - это Service + BroadcastReceiver.
Но придется слушать ресивер в каждом активити/фрагменте, плюс получится не такая удобная
реализация колбэков... Может быть можно это как-то реализовать с помощью Rx (в том
числе обернув методы SDK), чтобы оставить лямбды для удобства?
    


Ответы

Ответ 1



Может это поможет? Subscription subscription = Observable.interval(1000, 5000, TimeUnit.MILLISECONDS) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Action1() { public void call(Long aLong) { // here is the task that should repeat } }); https://stackoverflow.com/a/49718536/10965132

Комментариев нет:

Отправить комментарий