2011-11-29 20 views
9

Sto utilizzando Akka FSM per gestire lo stato nel mio attore. Voglio che alcune azioni vengano eseguite ogni volta che si verifica una transizione verso un determinato stato, indipendentemente dallo stato di transizione. Dopo aver letto la documentazione, mi sentivo certo che questo potrebbe essere risolto in questo modo:Come accedere allo stato durante le transizioni in Akka FSM

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

... 

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

Tuttavia, quando si verifica la transizione, stateData non è ancora aggiornato per NewStateData.

Qual è il modo consigliato per eseguire azioni quando si entra in un determinato stato?

risposta

7

Grazie per aver portato questo alla mia attenzione, è stata davvero una svista, che ho risolto immediatamente (vedi the ticket). Sfortunatamente non c'è molto che puoi fare (a parte fonderti tu stesso nella minuscola patch) fino alla 1.3, che dovrebbe essere la prossima settimana; se sei particolarmente impaziente, sarei grato se potessi provare RC2 con la correzione che verrà rilasciata questa settimana.

+0

ci sono voluti due giorni in più, ma RC2 è ora disponibile. –

+0

Sembra che mi sia imbattuto in questo problema in akka 2.3.12. Puoi confermare se il nuovo stato impostato usando 'using' è disponibile nel rispettivo caso della funzione parziale passata a' onTransition() '? – Mullefa

+1

Dovrebbe essere disponibile come 'nextStateData'. –

Problemi correlati