Цель состоит в том, чтобы выполнить потоковую передачу данных из базы данных, выполнить некоторые вычисления для этого фрагмента данных (это вычисление возвращает Future некоторого класса case) и отправить эти данные в виде ответа по фрагментам пользователю. В настоящее время я могу передавать данные и отправлять ответ без каких-либо вычислений. Однако я не могу выполнить это вычисление, а затем передать результат в потоковом режиме.
Это путь, который я реализовал.
def streamingDB1 =
path("streaming-db1") {
get {
val src = Source.fromPublisher(db.stream(getRds))
complete(src)
}
}
Функция getRds возвращает строки таблицы, сопоставленные с классом case (с помощью slick). Теперь рассмотрим функцию compute, которая принимает каждую строку в качестве входных данных и возвращает Future другого класса case. Что-то типа
def compute(x: Tweet) : Future[TweetNew] = ?
Как я могу реализовать эту функцию для переменной src и отправить фрагментированный ответ (в виде потока) этого вычисления пользователю.