Как создать вызываемый источник с использованием потоков akka - PullRequest
0 голосов
/ 09 января 2019

У нас есть следующая архитектура

SQS (источник) -> SQS Pollers -> Наша бизнес-логика -> Sink, который удаляет сообщения из SQS.

Это поток akka (наша бизнес-логика состоит из нескольких этапов).

Теперь мы хотим расширить эту архитектуру, добавив HTTP-сервер (не Akka HTTP).

Теперь наш сервис также имеет путь

HTTP-сервер -> Наша бизнес-логика -> Мойка, которая завершает будущее, указывая, что ответ HTTP завершен.

Теперь, когда приходит HTTP-запрос, мне нужен механизм для вызова потока.

В настоящий момент источник SQS - это, по сути, длительный поток, который вызывает службу и передает сообщение остальной части потока akka.

По сути, я пытаюсь создать «вызываемый» источник akka, чтобы источник срабатывал только при получении запроса.

Я искал https://doc.akka.io/docs/akka/2.5/stream/operators/Source/queue.html в качестве потенциального решения здесь, но это возвращает дескриптор для вызова только после того, как весь выполняемый граф был материализован, так что это немного уродливо объединяет источник опроса SQS и HTTP вызываемый источник.

1 Ответ

0 голосов
/ 09 января 2019

Я думаю, что на самом деле Source.queue был бы способ пойти сюда, материализовать поток один раз и предложить элементы в очередь как с конечной точки вашего HTTP-сервера, так и с вашего опроса SQS. Есть ли какая-то особая причина, по которой этим было бы некрасиво поделиться?

...