Я хотел бы создать простую службу калькулятора, которая имеет один метод для добавления чисел. Этот метод Add
должен быть async
и должен ограничивать количество одновременных вызовов, совершаемых в данный момент времени. Например, не более 5 одновременных вызовов в секунду. Если предел превышен, вызов должен выдать исключение.Как построить API с ограничением скорости с помощью Observables?
Класс должен быть как:
public class RateLimitingCalculator
{
public async Task<int> Add(int a, int b)
{
//...
}
}
Любые идеи? Я бы хотел реализовать его с помощью Reactive Extensions, но если лучше использовать другую стратегию, я бы придерживался этого! Спасибо!
есть несколько идей в этой статье (http://stackoverflow.com/a/36933908/3407841), которые могут вам помочь. – leetibbett
Вы должны действительно избегать смешивания монад. Я думаю, было бы легче понять это, если бы у вас была эта подпись: 'public IObservable Добавить (IObservable значений)'. –
Enigmativity
@ Энигматичность Что значит «избегать смешивания монад»? Кроме того, как вы думаете, имеет смысл использовать Rx для ограничения скорости API? – SuperJMN