是否可以在Akka actor中设置不使用事件的计时器? 输入Akka

问题描述

关于在actor内设置计时器的文档不太清楚。这是我可以找到的最接近的信息:Scheduling messages to self。但是,从那里还不清楚我们是否可以在actor内创建一个内部计时器,该计时器仅每5秒触发某个actor的方法(例如,检查actor的状态并对其变化做出反应),而不接收和发送事件。

如果可以设置这种计时器,它的可靠性如何? (例如,如果它可能失败,而演员会继续起作用,则否则)

如果还可以设置这种计时器,是否应该通过触发的方法或其他参与者的方法停止和(重新)启动计时器?

解决方法

如果通过

例如,每5秒触发某个演员的方法(例如检查演员的状态并对其变化做出反应),而无需接收和发送事件

您的意思是“在不向演员发送消息的情况下,在演员内安排要调用的方法”,那么答案是否定的。

仅应在响应发送给演员的消息(或在演员生成时,但这可以说是有效的消息)的直接响应中执行演员中的方法。否则,就是(至少)放弃参与者模型可以做出的几乎所有保证。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...