Реализация удаленной динамической потоковой передачи Akka.Net

Фон

Я и моя команда создаем решение в рамках .Net Core Framework. Нам удалось реализовать как SinkRefпредложение и SourceRefпредложение согласно документации Akka.Net . Однако мы находимся в некотором роде препятствия с точки зрения лучших практик для потоковой передачи.

По сути, мы хотим удаленно соединить двух актеров (в настоящее время это делается с помощью потоковой передачи), причем один актор выступает в качестве актера, а другой — в качестве исполнителя . Пока соединение остается открытым, мы хотели бы динамически добавлять элементы для потоковой передачи. Я нашел ответ Stack Overflow с тремя решениями для динамического добавления элементов в a , однако разница заключается в том, что мы требуем, чтобы эти элементы передавались на удаленный компьютер (хотя ответ предназначен для scala, принципы остаются прежними).

Единственный потенциальный обходной путь, который у нас есть на данный момент, это:

  • Каждый раз, когда актор получает новое сообщение, содержащее , новый поток открывается для Sinkактер. статический List<MyClass>затем сливаются все элементы, и поток закрывается. Хотя теоретически этот метод должен работать, он кажется крайне неэффективным и нелогичным для модели реактивных потоков.

Мой вопрос:

Я хотел бы знать, как открыть поток и добавить элементы в этот поток на Sourceсбоку, динамично. Поток должен оставаться открытым, поскольку элементы могут добавляться нечасто, пока система акторов не завершит работу.

0 ответов

Другие вопросы по тегам