Дроссельный поток на основе внешнего ввода - PullRequest
0 голосов
/ 23 ноября 2018

Глядя на сигнатуру 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) 
...