哪个actor.Tell方法更可取,为什么?

时间:2016-02-03 07:47:25

标签: akka.net

我想知道默认情况下应该使用哪种Tell方法?

的文档

http://getakka.net/docs/working-with-actors/sending-messages

提示Tell(message,sender)是发送消息的首选方式,但是看看Akka.Net代码,似乎Tell(message)无论如何都会调用两个参数版本,并自动填充sender字段。

除了使用两个参数版本的Tell调用更简单的代码之外(还有更少的ifs),是否还有另一个原因可以使用它而不是单个参数版本(从actor内部调用时)?

1 个答案:

答案 0 :(得分:1)

我倾向于用最少量的依赖来调用事物来完成手头的任务。

除此之外。您所指的文章实际上是赞成Tell over Ask<>。我认为目的不是指定哪种重载更适合使用。通常你会使用Sender,因为你想要一个响应来转到另一个演员。

调用Tell(blah, Self)似乎非常多余,这可能是过载存在的原因。你需要小心的时候是从你没有参考Self或适当的Sender EG的地方告知你的测试。

另一种常见情况是在服务层,这里(即系统的表面),您经常会发现Ask<>如果同步需要响应则是合适的。该文的要点是指出反应系统通常不希望同步(基于询问),因此您应该始终告诉基于路径(例如,在Web上下文中可能是Rx中心)

相关问题