Akka超时资源泄漏
Akka timeout resource leak
我有一个关于 Akka 超时的问题。
例如,我有一个 Supervisor actor,它向 DBActor 发送消息以开始读取数据库。 Supervisor 将超时设置为 5 秒。
DBActor开始读取数据库;它获取 ResultSet,然后进入循环以迭代 ResultSet 行并构建 return 值。
然后 Supervisor 遇到超时异常并且 returns 来自 .recover 块的值
我的问题是; DBActor 会在 TimeoutException 之后继续循环遍历 ResultSet 吗?因为那将是资源泄漏。
DBActor 独立于主管,并将继续处理记录,直到完成或被告知停止。主管放弃当前请求并不重要,因为 DBActor 不知道这一点。如果您希望流程提前停止,监管者将不得不向 DBActor 发送另一条消息,告诉它中止操作。 supervisor 还要处理超时后结果到达的情况。
另请注意,Scala 不能 "leak" 资源本身,因为它实现了垃圾收集。如果资源在某处累积,那是因为对该资源的引用被对象持有。
我有一个关于 Akka 超时的问题。
例如,我有一个 Supervisor actor,它向 DBActor 发送消息以开始读取数据库。 Supervisor 将超时设置为 5 秒。
DBActor开始读取数据库;它获取 ResultSet,然后进入循环以迭代 ResultSet 行并构建 return 值。
然后 Supervisor 遇到超时异常并且 returns 来自 .recover 块的值
我的问题是; DBActor 会在 TimeoutException 之后继续循环遍历 ResultSet 吗?因为那将是资源泄漏。
DBActor 独立于主管,并将继续处理记录,直到完成或被告知停止。主管放弃当前请求并不重要,因为 DBActor 不知道这一点。如果您希望流程提前停止,监管者将不得不向 DBActor 发送另一条消息,告诉它中止操作。 supervisor 还要处理超时后结果到达的情况。
另请注意,Scala 不能 "leak" 资源本身,因为它实现了垃圾收集。如果资源在某处累积,那是因为对该资源的引用被对象持有。