영속 액터의 수신 메소드에서 유지하려는 이벤트를 묶음으로 받고, 모든 이벤트가 지속 된 후에 만 내 상태를 다시 업데이트하십시오. 어떻게해야합니까?모든 이벤트가 지속 된 후에 액터 상태를 업데이트하십시오.
def receive: Receive = {
...
case NewEvents(events) =>
persist(events) { singleEvent =>
// Update state using this single event
}
// After every events are persisted, do one more thing
}
persist() 호출이 차단되지 않았으므로 코드를 삽입 할 수 없습니다.
업데이트 :이
필요한 이유 이러한 새로운 이벤트가 외부 웹 서비스에서 왔습니다. 내 지속적인 액터는 마지막 이벤트 ID를 상태에 저장해야합니다. 마지막 이벤트 ID는 명령을받을 때 후속 ws 호출에 사용될 것입니다. 것은이 명령이 동시에 올 수 있다는 것이다, 그래서 어떤 잠금 시스템의 종류가 필요합니다
- 수신 WS 호출 명령이 하나가 완료 될 때까지 숨겨 놓은 다음 명령을 (즉, 요약하면, 부울)
- 수신 한 응답 ws : 상태를 업데이트하고 마지막 ID를 저장하고, 숨김 상태 인 모든 명령에 대해 다른 단일 ws 호출을 실행합니다 (명령 보낸 사람이 응답 할 수 있도록 유지합니다.) 모든 일을 한 번) 그렇지 않으면 더 이상 명령을 숨기지 않습니다.
'지연'이 목적을 위해 작동합니까? – Ryan
유망 해 보입니다. 나는 이것을 시도 할 것입니다. 감사! – Dimitri
내가 필요로하는 이유가 무엇인지 물어볼 수 있습니까? 어쩌면 거기에 당신의 최종 목표를 설명하는 경우 그것을 달성하는 더 좋은 방법이있다 –