2016-08-18 17 views
1

我可以訂閱使用此語法DeadLetters在Akka.Net V 1.0.8抓DeadLetters Akka.NET 1.1.0

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

但是當我嘗試以V 1.1.0使用相同的語法,我得到以下異常!

類型「System.ArgumentException」發生在 Akka.Cluster.dll但在用戶代碼中沒有處理

附加信息的一個例外:訂閱IClusterDomainEvent或 亞類,是[死信]

回答

3

集羣訂閱用於接收與集羣生命週期關聯的事件。死信(就像其他日誌消息一樣)被髮布到事件總線中,所以您需要使用Context.System.EventStream.Subscribe(Self, typeof (DeadLetter))來訂閱它。

考慮到,該事件總線只能在同一個演員系統內部的演員的本地訂閱。

+0

我可以通過訂閱像這樣得到deadletters但是當我試圖得到的消息是什麼我得到的是這樣的:**味精:Akka.Cluster.ClusterHeartbeatSender +心跳** 我怎樣才能得到真正的消息哪些被髮送? – Vegeta

+1

@Thickar http://api.getakka.net/docs/stable/html/AAC2550B.htm - 您可以使用'DeadLetter'上的'Message'屬性獲得真正的消息 – Aaronontheweb