2016-08-18 1 views
1

나는 Akka.Net V에서이 구문을 사용하여 DeadLetters 구독 할 수 있습니다 1.0.8캐치 DeadLetters Akka.NET의 V 1.1.0

Cluster.Get(Context.System).Subscribe(Self, ClusterEvent.InitialStateAsEvents, new[] { typeof(DeadLetter)}); 

하지만 V 1.1.0이 같은 구문을 사용하려고 할 때, 난 다음 예외를 얻으십시오!

'System.ArgumentException' Akka.Cluster.dll 발생하지만 사용자 코드

추가 정보 처리되지 않은 유형의 예외 : IClusterDomainEvent 또는 서브 클래스에 동의했다 [DeadLetter]

답변

3

클러스터 구독은 클러스터 수명주기와 관련된 이벤트를 수신하는 데 사용됩니다. 데드 레터 (다른 로그 메시지와 마찬가지로)는 이벤트 버스에 게시되므로 Context.System.EventStream.Subscribe(Self, typeof (DeadLetter))을 사용하여 구독해야합니다.

해당 이벤트 버스는 동일한 배우 시스템 내에 거주하는 배우에게서 로컬로만 구독 할 수 있습니다.

+0

내가 이런 식으로 가입하여 deadletters를받을 그러나 나는이 메시지를받을 때 내가 얻을 것은이 같은 것입니다 수 있습니다 ** MSG :. Akka.Cluster.ClusterHeartbeatSender + 하트 비트 ** 어떻게 내가 진짜 메시지를 얻을 수 있습니다 보냈지? – Vegeta

+1

@Thickar http://api.getakka.net/docs/stable/html/AAC2550B.htm -'DeadLetter'에'Message' 속성을 사용하여 실제 메시지를 얻을 수 있습니다. – Aaronontheweb