나는 akka 배우들 사이에서 작업자에게 일자리를 제공하는 주인을 대표하고 그 일을주의 깊게 관찰하는 메시징 프로세스를 구축하려고합니다. 그렇지 경우에도 내 질문은 내가이를 위해, 선물의 구성 제대로 할 수있는 방법을 알고 싶습니다, 선물을 가진 Akka 배우 작업과 핸드 오프
- 내가 합리적인 접근 방식 아래에 제안하고있어 무엇이며, 나의 미래 교육의 술. 내가 좋아하는 것
과정이
1) 마스터 같은이 ask
와 노동자로 일을 보낸다 간다. 5 초 이내에 회신을 기다리고 있습니다. 그렇지 않으면 근로자가 기회를 잃어 버렸다고 생각하고 다시 입찰에 참가해야합니다. 노동자가 5 초 이내에 응답하지 않는 경우
import context.dispatcher
implicit val timeout = Timeout(5 seconds)
val workCompletedFuture = (worker ? WorkTicket(work)).mapTo[Future[WorkCompleted]]
2A) 나는 자신에게 작업을 재 할당 할 수 없다는 메시지를 보내 마스터를하고 싶습니다. 노동자가 다음 응답 않은 경우
self ! WorkAllocationFailed(work, worker)
2B) IT는 미래 [WorkCompleted] 우리에게 제공합니다. 나는 그 미래가 최대 2 분 동안 완료 될 때까지 기다리고 싶다.
3A) 미래 [WorkCompleted] 제한 시간 내에 완료하지 못한 경우 다음 작업 미래 [WorkCompleted] 성공 후 결과를 수집하는 경우
I
self ! WorkFailed(work, worker)
3B)를 재 할당 이 로직을 만들려고 시도했지만 중첩 된 onComplete
으로 혼란에 빠지며 Future [WorkCompleted]에서 시간 제한을 수행하는 방법을 알지 못합니다. Akka 2.10 Futures docs을 읽으려고했지만 해결책을 찾을 수 없었습니다.