Throttle Rx.Observable без пропуска значений

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

Практический пример :есть веб-сервис, который может принимать запросы не быстрее, чем раз в секунду; есть пользователь, который может добавлять запросы, одиночные или пакетные. Без Rx я создам список и таймер. Когда пользователи добавляют запросы, я добавляю их в список. В событии таймера я проверю, пуст ли список. Если это не так, я отправлю запрос и удалю соответствующий пункт. С замками и прочим. Теперь с помощью Rx я могу создавать Subject, добавлять элементы, когда пользователи добавляют запросы. Но мне нужен способ убедиться, что веб-служба не перегружена за счет применения задержек.

Я новичок в Rx, поэтому, возможно, я упускаю что-то очевидное.

15
задан Athari 25 July 2012 в 16:43
поделиться