2011-11-29 8 views
9

Estoy usando Akka FSM para manejar el estado en mi Actor. Quiero que se realicen algunas acciones cada vez que se produce una transición a un determinado estado, sin importar desde qué estado se hizo la transición. Después de leer la documentación, me sentí seguro de que esto podría resolverse de esta manera:Cómo acceder al estado durante las transiciones en Akka FSM

onTransition({ 
    case (_, ToState) => performAction(stateData) 
}) 

... 

when(FromState){ 
    case "changestate" => goto(ToState) using NewStateData 
} 

Sin embargo, cuando se produce la transición, stateData aún no esta actualizado para NewStateData.

¿Cuál es la forma recomendada de realizar acciones al ingresar a un estado determinado?

Respuesta

7

Gracias por traer esto a mi atención, eso fue de hecho un descuido, que arreglé inmediatamente (vea the ticket). Lamentablemente, no hay mucho que puedas hacer (aparte de fusionarte en el pequeño parche) hasta que se acabe el 1.3, que debería ser la próxima semana; si eres particularmente impaciente, te agradecería si pudieras probar RC2 con la solución que se lanzará esta semana.

+0

tardó dos días más, pero RC2 está ahora fuera. –

+0

Parece que me he encontrado con este problema en Akka 2.3.12. ¿Puedes confirmar si el nuevo estado establecido usando 'using' está disponible en el caso respectivo de la función parcial pasada a' onTransition() '? – Mullefa

+1

Debe estar disponible como 'nextStateData'. –

Cuestiones relacionadas