장기간 머무르는 Windows 서비스에서 akka.net의 원격 액터를 사용하고 있습니다. ActorSelection을 사용하여 원격 액터에 대한 IActorRef를 얻습니다. 그리고이 IActorRef를 활성 상태로 유지합니다. IActorRef는 다른 Windows 서비스에서 실행중인 액터 시스템을 가리 킵니다. 원격 액터를 다시 시작해도 원격 액터 참조가 무효화되지 않는다는 것을 알고 있습니다. 그러나 원격 Windows 서비스가 어떤 시점에서 다시 시작될 수 있으며 호출 창 서비스의 IActorRef가 유효하지 않게 될 수 있습니다.오래된 akka.net 원격 iactorref를 처리하는 방법
이 문제를 해결하는 가장 좋은 방법은 무엇입니까? 솔직한 접근 방법은 원격 액터를 호출 할 때마다 ActorSelection을 사용하여 새로운 IActorRef를 얻는 것입니다. 이것은 분명히 비효율적 일 것입니다.
다른 접근법은 예외를 트랩하고 actorselection을 사용하여 새 IActorRef를 얻고 재 시도하는 일종의 오류 처리 봉투에서 해당 IActorRef에 대한 모든 호출을 간단히 래핑하는 것일 수 있습니다. 또는 실제 호출 전에 테스트 콜을 사용하여 원격 액터가 아직 살아 있는지, 새 액터 ref를 얻지 못했는지 확인할 수 있습니다.
더 좋은 방법이 있습니까?
답해 주셔서 감사합니다. 액터 자체에 있지 않은 코드에서 원격 액터에게 메시지를 보낼 때 어떻게 작동합니까? 예를 들어 액터 선택을 사용하여 원격 액터에 IActorRef를 가져 와서 Ask()를 통해 메시지를 보냅니다. 호출 시스템에는 행위자 자체가 없으므로 종료 된 메시지를받을 액터가 없습니다. 나는이 목적을 위해서 배우를 만들 수 있다고 생각하지만, 그런 전용 액터를 만들 필요없이 이것을 수행 할 다른 방법이 있습니까? – cfcal