Использование Rxjs5 (бета-версия) для ограничения HTTP-запросов

Я использую RxJS5 (https://github.com/ReactiveX/RxJS) и пытаюсь для доступа к Riot API, который имеет ограничение в 500 запросов каждые 10 минут и 10 запросов каждые 10 секунд.

Я настроил поток объектов запроса, и у меня есть подписчик, готовый получить их и фактически запросить их, но я новичок в RxJS и не уверен, какой оператор мне следует использовать для ограничения запросов.


person Erez Hochman    schedule 28.02.2016    source источник


Ответы (2)


Если вы хотите сбалансировать свои запросы, вы можете использовать пример: const newRequests = requestStream.sample(Observable.timer(75)); //10*60*60/500 = 72 --> 75 to be sure Образец будет испускать элемент из наблюдаемого, когда данный наблюдаемый испускает

person Jan van Brügge    schedule 12.04.2016

Не уверен, что это лучший способ, но в итоге я заархивировал поток объектов запроса с помощью интервального наблюдателя, поэтому он будет передавать события только тогда, когда интервал истекает. опять же, не уверен, что это лучший способ сделать это, но он работает, вот как это выглядит:

raw_stream = Rx.Observable.fromEvent EventEmitter, 'event'
interval = Rx.Observable.interval(1000)
timed_events = Rx.Observable.zip interval, raw_stream

если у вас есть лучший способ, пожалуйста, не стесняйтесь отвечать.

person Erez Hochman    schedule 29.02.2016