• 【EasyNetQ】- 发送接收


    发布/订阅和请求/响应模式是位置透明的,因为您不需要指定消息的使用者所在的位置,而发送/接收模式专门用于通过命名队列进行通信。它也不会假设可以通过队列发送的消息类型。这意味着您可以通过同一队列发送不同类型的消息。

    发送/接收模式非常适合创建“命令管道”,您需要将缓冲通道发送到单个命令处理器。

    要发送消息,请使用IBus上的Send方法,指定要将消息发送到的队列的名称以及消息本身:

    bus.Send("my.queue", new MyMessage{ Text = "Hello Widgets!" });

    要为特定消息类型设置消息接收器,请使用IBus上的Receive方法:

    bus.Receive<MyMessage>("my.queue", message => Console.WriteLine("MyMessage: {0}", message.Text));

    您可以使用带有Action <IReceiveRegistration>的Receive重载为同一队列上的不同消息类型设置多个接收器,例如:

    bus.Receive("my.queue", x => x
        .Add<MyMessage>(message => deliveredMyMessage = message)
        .Add<MyOtherMessage>(message => deliveredMyOtherMessage = message));

    如果消息到达没有匹配接收器的接收队列,EasyNetQ会将消息写入EasyNetQ错误队列,并显示“未找到消息类型<消息类型>的处理程序”。

    注意:您可能不希望为同一队列调用bus.Receive多次。这将在队列中创建一个新的使用者,RabbitMQ将在它们之间循环。如果您在不同的接收呼叫(以及不同的消费者)上使用不同的类型,您的一些消息将最终出现在错误队列中,因为EasyNetQ将找不到与消费者使用的消费者相关联的消息类型的处理程序。

  • 相关阅读:
    移动端(手机端)页面自适应解决方案1(rem布局)---750设计稿
    ionic4之ion-sliders
    ionic4 新建
    Object的多种方法
    angular的Hash 模式和 HTML 5 模式
    关于滚动条
    前端笔记(1-20)
    百度图片网址
    ImageLoader_显示图片
    viewpager_轮播
  • 原文地址:https://www.cnblogs.com/wangwust/p/9437389.html
Copyright © 2020-2023  润新知