有没有办法知道一个演员系统有多少演员,他们的名字是什么



我正在考虑构建一个系统,使用当前返回的查询中的信息为用户预取查询(用户在数据库中查询userId,该ID返回用户接听的电话列表。我想预取电话的查询(如记录的电话的日期、持续时间和位置)。用户可能永远不会查询这些东西,但他们通常会查询

目前,每个查询大约需要10秒(代码中需要进行一些优化,但最大的瓶颈是DB,这超出了我的能力范围)。

所以,我想和演员一起做预取。我最终会想办法让演员们在x次未使用的情况下自杀,但首先我想看看我有哪些演员在演。

在Akka.NET中有什么方法可以做到这一点吗?

如何对其进行建模是通过拥有一个处理特定预取参与者集的父参与者。您是有一个Actor来管理所有预取,还是有多个Actor,其中每个Actor管理一组专门的预取器,这取决于您。

但关键是,你最终会得到一个定义明确的顶级参与者,你可以发送一条消息询问它有多少活动预取器。

更新:

您可以使用ActorSelection和通配符向多个参与者发送消息。

关于处理超时。我会使用钝化图案。子参与者可以使用ReceiveTimeout方法来监控其自身的活动,并在检测到其空闲x段时间后向其父参与者发送钝化消息。一旦父级接收到钝化消息,它将停止将消息路由到子级,而是缓冲它们。并阻止演员。一旦确认actor终止,它将检查是否有任何新的消息用于该actor,如果有,则重新创建actor并将消息从其缓冲区刷新到它。

最新更新