나는 scala를 사용하여 akka 배우 시스템을 실행 중입니다. 이제 여러 장치를 병렬로 구성해야 모든 구성 작업을 관리하는 Manager
액터가 있습니다. 실제로 구성하려면 구성당 Worker
액터를 생성하여 동시에 또는 병렬로 실행합니다. 이제 Worker
배우는 구성 중에 관리자로부터 메시지를받을 필요가 없으며 자신의 일을 수행하기 만하면 Manager
으로 끝났음을보고합니다.배우 좋은 연습?
이제 문제는 내가 지침과 Worker
의 생성자에서 Manager
의 ActorRef
을 전달하거나 내가 만든 다음 Do(action: => Unit)
처럼 메시지를 전송 할 수 있으며 다음 완료되면 sender
에 응답 할 것이다합니까입니까? 대회를하는 방법이나 좋은 연습으로 간주되는 대회가 있습니까?
편집는 : 블라디미르 Matveev는 Manager
나에게 참조를 연상으로 이미 context.parent
의 계층 구조를 통해 알려진대로 문제가되지 않습니다. 그것은 Worker
에 작업을 전달하는 방법에 대한 질문 만 남깁니다.
'Manager'가 작업자를 직접 스폰하면, 관리자에게'Manager' 참조를 전달할 필요가 없습니다. worker는'context.parent'를 사용하여'Manager''' ActorRef'에 접근 할 수 있습니다. –
@VladimirMatveev 오, 그래 그게 사실이야. 그러나 그들이해야 할 일은 무엇입니까? 'context.scheduler.schedule ...'을 사용하여 미래에 생성 할 경우'context.parent'는 여전히'Manager'입니다. 나는 그것을 폐쇄가되어야한다고 생각하지만 그것에 대해서는 확실하지 않습니다. – mgttlinger
액터 내에서'context'를 사용하여 자식 액터를 스폰하면, 액터 내부에서'context'를 사용하는 위치에 상관없이이 액터를 부모로 갖게됩니다. 당신이 말했듯이,'context' 변수는 막혀 있지만, 여전히'context' 변수이기 때문에 꽤 논리적입니다. –