Глядя на сигнатуру throttle в Akka Streams, я вижу, что может потребоваться функция стоимости типа (Out) ⇒ Int
, чтобы вычислить, как элемент, проходящий через стадию, влияет на ограничение скорости cost/per
элементовотправлено вниз по течению.
Можно ли реализовать регулирование на основе внешнего входа для потока со встроенным каскадом?Если нет, то было бы проще реализовать пользовательский этап?
Я ожидаю что-то вроде:
def throttle(cost: Int, per: FiniteDuration, maximumBurst: Int, costCalculation: ⇒ Int, mode: ThrottleMode): Repr[Out]
Чтобы мы могли сделать что-то вроде:
throttle(75 /** 75% CPU **/, 1.second, 80 /** 80% CPU **/, getSinkCPU, ThrottleMode.Shaping)