Akka에서 FSM을 사용하여 프로토콜 상태 (핸드 셰이크, 전송, 페이로드 디코딩 ...)를 모델링하려고했습니다. 타임 아웃과 비슷한 것을 정의하고 싶지만 "처리 된 바이트"(예 : n
바이트를 처리 한 후 동일한 상태로 남겨두면 여기에서 빠져 나옵니다). 간단히 말해서, stateTimeout
속성의 동작을 다시 정의하고 싶습니다. 관용적으로 이것을 달성하는 방법에 대한 아이디어가 있습니까?시간이 아닌 측정 값에 대한 Akka FSM "timeout"(스칼라에서)
2
A
답변
1
당신이 특정 상태 X
와 "시간의 최대는"이 같은 뭔가를 할 수 있다고 판단하는 방법 def isDone(x: D): Boolean
이 가정 :
when(X) (({
case Event(...) => ...
...
}: StateFunction) andThen {
case State(_, data, _, _, _) if isDone(data) => // return new state
case x => x
})
불행하게도 유형의 귀속이 필요하며, andThen 전체 기능 1 소요 , 내가 원하는 것보다 좀 더 장황하게 만든다. 나는 이것이 유용하다는 것을 알고, 그것을 더 쉽게 만드는 방법에 대해 생각할 것이다.
+0
당신은 항상 두 부분을 방법으로 나눌 수 있습니다 ... –
관련 문제
- 1. 감지 된로드 시간 측정 (실제로드 시간이 아닌)
- 2. 프로그램 실행 시간이 측정 값이 아닌 이유는 무엇입니까?
- 3. Mdx는 측정 값과 측정 값에 대해 반복되는 값을 생성합니다.
- 4. Akka에서 전환하는 동안 상태에 액세스하는 방법 FSM
- 5. Akka : 기본이 아닌 생성자와 스칼라에서 배우를 정의하고
- 6. FSM 프레임 워크가 필요함
- 7. 결합 된 상태, FSM
- 8. 반환 값에 대한 연산 수행
- 9. C++ 게임을위한 일반 FSM?
- 10. VHDL FSM 패턴 검사기
- 11. RE -> FSM 생성기?
- 12. 애니메이션 : 시간이 아닌 속도를 지정하십시오.
- 13. 음수가 아닌 정수 및 소수 값에 대한 유효성 검사
- 14. 프로세스를 완료하는 데 시간이 아닌 다른 BPM 도구에 대해 측정 할 수있는 KPI는 무엇입니까?
- 15. Akka 액터의 핫 스왑 사용 사례
- 16. Google 애널리틱스 API - 측정 기준 선택시 반환되는 측정 기준 값에 영향을 줍니까?
- 17. 몬드리안 : 측정 값에 맞는 집계 도구를 선택하는 데 도움이됩니까?
- 18. 데이터베이스의 측정 단위에 대한 데이터 유형
- 19. 하스켈 무한 타입과 FSM 함수
- 20. 그리드 서버 응용 프로그램에 대한 Akka Remoting
- 21. 이미지에 대한 지각 측정 방법
- 22. null 값에 대한 Ext.util.Format.undef 기능
- 23. 여러 값에 대한 IComparer
- 24. 문자열 값에 대한 java.lang.NumberFormatException
- 25. 누적 값에 대한 차트
- 26. 시험 값에 대한 레코드
- 27. 최대 값에 대한 ID는
- 28. 단일 값에 대한 맵
- 29. 각 값에 대한
- 30. 반환 값에 대한 시나리오
바이트가 액터 메시지로 들어 오므로 이들을 셀 수 있으며 상태를 전환 할 것인지 결정할 수 있습니까? –
No : - \ 현재까지 소비 한 바이트 수를 알 수있는 액터의 상태입니다. –