Реализация удаленной динамической потоковой передачи Akka.Net
Фон
Я и моя команда создаем решение в рамках .Net Core Framework. Нам удалось реализовать как
SinkRef
предложение и
SourceRef
предложение согласно документации Akka.Net . Однако мы находимся в некотором роде препятствия с точки зрения лучших практик для потоковой передачи.
По сути, мы хотим удаленно соединить двух актеров (в настоящее время это делается с помощью потоковой передачи), причем один актор выступает в качестве актера, а другой — в качестве исполнителя . Пока соединение остается открытым, мы хотели бы динамически добавлять элементы для потоковой передачи. Я нашел ответ Stack Overflow с тремя решениями для динамического добавления элементов в a , однако разница заключается в том, что мы требуем, чтобы эти элементы передавались на удаленный компьютер (хотя ответ предназначен для scala, принципы остаются прежними).
Единственный потенциальный обходной путь, который у нас есть на данный момент, это:
- Каждый раз, когда актор получает новое сообщение, содержащее , новый поток открывается для
Sink
актер. статическийList<MyClass>
затем сливаются все элементы, и поток закрывается. Хотя теоретически этот метод должен работать, он кажется крайне неэффективным и нелогичным для модели реактивных потоков.
Мой вопрос:
Я хотел бы знать, как открыть поток и добавить элементы в этот поток на
Source
сбоку, динамично. Поток должен оставаться открытым, поскольку элементы могут добавляться нечасто, пока система акторов не завершит работу.