我所做的:
更新:我发现了问题;它是由于通过池消耗Redis连接而导致的,并且从未释放它们。但我还有第二个问题,我在这里做的事情明智吗?
当然,这可能是一个合理的设计。但是我会考虑使用future
返回方法是否更具可维护性,除非您的工作流需要在多个移动片段或内部状态之间的某种复杂协议。如果您的处理不能很好地映射到异步方法调用,那么也值得考虑Akka流。
基本上,演员是一个相当低级的工具。如果您需要它们,我会尽量减少直接使用它们的应用程序的表面积。在可能的情况下,更高级别的抽象会更好。
假设我有一个参与者,负责根据某个键将消息路由到子参与者集合,因此其内部状态如下所示: 除了路由消息外,父参与者还必须支持添加和删除操作: 希望上面的代码足以让我大致了解我要做的事情。请注意,我使用map键作为子参与者的名称。问题在于,上述模式无法处理同一个键的添加、删除和添加消息的快速连续情况-它通常在第二次添加时失败,原因是: 显然,在Remove messages上停止子参与者是异步的,这就是
然后,Actor A将json解析为对象序列,然后通过ask将它们发送给Actor B。Actor B应该最终通过将它们发送给其他Actor来处理这些对象,但目前只是返回一般的响应。 ActorA将来会接收到一般的响应,然后解析到JSON,然后通过OK响应返回给控制器。或者至少这是应该发生的。 发生了什么:控制器发送到ActorA,ActorA发送到Actorb。ActorB向Actora发送一般
我从这里得到上面的错误消息: 特别是从第二行。。进口是 akka版本是2.2.1,scala是2.10.2,我正在使用sbt 0.13来构建它。 编辑:我用 结果如下:
问题内容: 括号用于什么用途?我不确定此分配操作中发生了什么。 您是否需要更多详细信息来回答这个问题? 问题答案: 这是一个类型断言。类型断言可用于: 从 接口 类型的值中获取 具体 类型的值 __ 或获得与初始接口类型 不同的 接口值(具有不同方法集的接口,实际上不是原始接口的子集,因为可以使用简单的类型转换就可以简单地获得它)。 引用规范: 对于接口类型和类型的表达式,主要表达式 断言不是,并
null 函数getAndProcessData包含并行执行3个Future.Sequence。 现在,随着我对Akka的阅读越来越多,我发现使用ask会创建另一个actor Listener。问题是: 正如我们广泛使用的ask,它是否会导致系统中使用多个线程,有时可能会导致线程饥饿? 使用future.map也往往意味着不同的线程。我读到过一个线程演员的幻觉,它可以很容易地通过混合未来打破。 此
我很想知道调整大小,或者在本例中增加单个节点系统上的actor池中actor的数量是否真的会影响性能。 我有一个带超线程的四核系统。在任何给定的点上,系统可以运行8个线程。假设执行元执行的大多数操作都是CPU绑定的,那么将池中的执行元数量从20个增加到40个会有什么收获呢?