原文地址:https://www.cnblogs.com/chengtian/p/9059886.html
以下为个人理解:
观察者只接收消息,不消费消息,一般用于消息记录
定义观察者
public class CustomerAddressUpdatedObserver:
IObserver<ConsumeContext<YourMessage>>
{
// 消息发生时
public void OnNext (ConsumeContext<YourMessage> context) {
Console.WriteLine ("Customer address was updated: {0}", context.Message.Text);
}
// 出现错误时
public void OnError (Exception error) { }
// 完成时
public void OnCompleted () { }
}
将观察者添加到队列
// 创建基于内存的总线
var bus = Bus.Factory.CreateUsingInMemory(config => {
// 设置接收队列,队列名 test_queue
config.ReceiveEndpoint("test_queue", ep =>
{
// 添加消息消费者
ep.Consumer<UpdateCustomerConsumer>();
// 添加观察者
ep.Observer(new CustomerAddressUpdatedObserver());
});
});