Передача большого байта [] между актерами в кластере Akka.net - PullRequest
0 голосов
/ 11 сентября 2018

Я новичок в Akka.net. У меня есть 2 актера, один запрашивает байтовый массив, а другой получает его из базы данных и сообщает об этом отправителю. Если второй субъект находится в удаленном режиме, он не передает отправителю длинный массив. Если я хочу отправить байтовый массив как чанки, я могу сказать отправителю в цикле от второго актера, но я не знаю, как заставить первого актера прослушивать все сообщения чанка и объединять их в один байтовый массив , Пожалуйста, помогите мне с этим.

1 Ответ

0 голосов
/ 14 сентября 2018

Один из способов сделать это - сделать так, чтобы первое сообщение от второго актера было чем-то наподобие сообщения PrepareForIncomingData, при получении которого первый актер переходит в состояние WaitForDataToComplete, где он получает только определенные типы сообщений, например IncomingDataChunk и IncomingDataCompleted.

В то время как в этом состоянии все другие сообщения спрятаны, как только вы получаете сообщение IncomingDataCompleted, вы переходите обратно в обычное состояние и распаковываете спрятанные сообщения.

См. Документацию по становлению / unbecome - http://getakka.net/articles/actors/receive-actor-api.html#becomeunbecome

Или другой вариант может быть конечным автоматом - http://getakka.net/articles/actors/finite-state-machine.html

Или, возможно, данные записываются в общее местоположение, а сообщение содержит только путь, по которому первый актер может прочитатьданные из.

...