繁体   English   中英

Sink.actorRefWithAck 可以批量发送消息吗?

[英]Is batch message sending possible with Sink.actorRefWithAck?

我正在使用 Akka Streams 并且遇到了Sink.actorRefWithAck 我知道它会发送一条消息,并且仅在收到对上一条消息的确认后才尝试从 stream 中拉入另一个元素。 有没有办法用这个接收器批处理消息? 示例:拉取 5 条消息,只有在前 5 条消息被确认后才拉取接下来的 5 条消息。 我想过类似的事情

source.grouped(5).to(Sink.actorRefWithAck(...))

但这需要接收器更改为使用序列,让我们假设这是不可能的。

不,这对于Sink.actorRefWithAck()是不可能的,同时保持单个消息在参与者邮箱而不是整个批次中排队。

更急切地将参与者收件箱中的消息排队的一种想法是使用source.mapAsync(n)(ask-actor).to(Sink.ignore) 这会将n发送给参与者,然后一旦第一个从参与者那里得到响应,它就会拉出一个新元素并将其加入队列。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM