如何在Akka FSM转换期间访问状态
问题描述:
我正在使用Akka FSM处理我的Actor中的状态。无论转换是从哪个状态开始的,我都希望在每次转换到某个状态时执行一些操作。阅读文档后,我敢肯定,这是可以解决这样的:如何在Akka FSM转换期间访问状态
onTransition({
case (_, ToState) => performAction(stateData)
})
...
when(FromState){
case "changestate" => goto(ToState) using NewStateData
}
然而,在进行转移时,stateData尚未更新到NewStateData。
在进入某个状态时执行操作的建议方式是什么?
答
感谢您提醒我注意,这确实是一个疏忽,我立即修复(请参阅the ticket)。不幸的是,你可以做的事情不多(除了自己将这个小补丁合并在一起),直到1.3出局,这应该是下周;如果你特别不耐烦,我将不胜感激,如果你可以尝试RC2本周将发布的修复。
它花了两天时间,但RC2现在不在了。 –
我似乎在akka 2.3.12中遇到过这个问题。你可以确认是否在传递给'onTransition()'的部分函数的相应情况下,使用'using'设置的新状态是否可用? – Mullefa
它应该可以作为'nextStateData'使用。 –