Akka 阿克卡演员和调度员
在调度消息时,下面的示例是经典的反模式吗Akka 阿克卡演员和调度员,akka,Akka,在调度消息时,下面的示例是经典的反模式吗 class MyActor extends Actor { private val scheduler = context.system.scheduler.schedule(3.seconds, 3.seconds, self, Tick) def receive = { case Tick => processMessage(....) } } 为什么我不应该使用本地调度程序?我将尝试总结为什么不应该使用调度程序作为默
class MyActor extends Actor {
private val scheduler = context.system.scheduler.schedule(3.seconds, 3.seconds, self, Tick)
def receive = {
case Tick => processMessage(....)
}
}
为什么我不应该使用本地调度程序?我将尝试总结为什么不应该使用调度程序作为默认模式
HashedWheeltimer
在我们的项目中,我们使用“每个请求的参与者”模式,我们从“请求参与者”向其他参与者发送消息,然后设置
context.setReceiveTimeout(x秒)
。如果我们在X秒内没有收到任何响应,我们认为这个消息是丢失的,根据我们使用的“至少一次”或“至多一次”交付的方式应用我们的逻辑。我已经看到的一个问题是测试这个角色变得困难。假设我在这个演员里面有相当多的逻辑,那么我就注定了,但除此之外,这被认为是反模式吗?你们觉得怎么样?