Scala оконные данные с помощью Akka HTTP - PullRequest
0 голосов
/ 17 декабря 2018

Я использую Akka HTTP для отправки данных в пост-запросе и накапливаю их в списке.Мне нужно выполнить некоторые правила для тех данных, которые будут производить агрегацию по партиям.Чтобы создать пакеты, мне нужно обработать данные на фиксированное время

Данные, которые у меня есть в Списке, примерно такие, как

 data = List(
  Map("a" -> 1.0, "b" -> 267.0, "c" -> 26.0, "d" -> 2.0,"time" -> 12345678293), Map("a" -> 1.0, "b" -> 2678.0, "c" -> 40.0, "d" -> 2.0,"time" -> 12345678293), Map("a" -> 4.0, "b" -> 267.0, "c" -> 26.0, "d" -> 2.0,"time" -> 12345678293), Map("a" -> 1.0, "b" -> 2678.0, "c" -> 90.0, "d" -> 17.0,"time" -> 12345678293),...
  )

время в предоставленной эпохе

Этот список будет увеличиваться со временем

Мои правила похожи на

 RuleName   function   WindowTime
   R1         sum(a)      5 Min
   R2         avg(b)      10 Min
   R3         StdDev(d)   30 Min
   ...         ...         ...

и т. Д.

игнорировать столбец функции, на данный момент, мой вопрос у меня около 200такие правила, которые имеют разное время окна.Как создать и управлять таким количеством разных окон?Как вызвать событие, чтобы правила выполнялись в свое время

В соответствии с приведенным выше примером правило R1 будет выполняться через каждые 5 минут, а R2 - через каждые 10 минут, поэтому до тех пор, пока все правила не будут выполнены, Iне может истечь данные также.Обратите внимание, что когда R2 выполнит, R1 также выполнится, поскольку R1 завершил 5 минут, а R2 завершил 10 минут.

Я просто использую Scala, Akka.

Я также прошел через слюни, но я не знаю, как слюни управляют таким количеством правил в разных окнах.

Любая идея и помощь приветствуются.Заранее спасибо!

1 Ответ

0 голосов
/ 17 декабря 2018
  1. вы можете хранить данные где-нибудь (дБ, в памяти и т. Д.) И настраивать планировщик akka для вызова определенных вычислений с некоторым интервалом
  2. вы можете легко составлять необходимые вычисления с помощью akkaпотоковые графики (поток akka-http + широковещание + группировка внутри потока), но это может привести к чрезмерному использованию потоков
...