【发布时间】:2017-01-29 17:58:50
【问题描述】:
我在做什么:
我正在使用 play 2.5.7 (java) 并尝试构建 REST 应用程序。 当我在控制器上接到电话时,我问第一个参与者,这个参与者只能解决部分问题(获取附加数据),需要将其转发给另一个参与者,该参与者使用请求数据和附加数据来更新更多数据,向另一个参与者发送一个异步无效调用(告诉)并响应控制器。所有这些 (4) 个actor 都使用 Guice 在其他actor 或控制器中@Injected。
调用流程:
控制器 --(Patterns.ask)--> actor1 --(actor.forward)--> actor2 --(actor.forward)--> actor3 (-tell-> actor4) 和 --(sender( ).tell)--> 控制器。
问题:
这适用于前 4 次通话。然后在 actor1.forward 上,每次连续请求都会失败; Patterns.ask 超时。 System.out 在 actor1.forward 工作之前上线,但不是实际的转发。无论超时值如何(甚至尝试了 20 秒)。请求中未进行任何更改;我每次都按邮递员的发送按钮。
我有两个问题:
为什么是 4?为什么在第四次请求后失败?它是一些配置吗?我应该在配置中寻找什么?- 我对演员所做的事情是构建 REST Web 服务的正确方法吗?
更新:我发现了问题;这是由于通过池消耗了 Redis 连接并且从未释放它们而引起的。但是我的第二个问题仍然存在,我在这里做的事情是否可取?
【问题讨论】:
标签: java rest playframework akka