zoukankan      html  css  js  c++  java
  • ketchup 消息队列rabbitmq使用

    ketcup  git地址:https://github.com/simple-gr/ketchup

    rabbitmq 安装

    1.docker pull rabbitmq:management

    2.docker run -itd --name rabbitmq --restart=always -p 5672:5672 -p 15672:15672 -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=qwe123QWE rabbitmq:management

    RABBITMQ_DEFAULT_USER:默认登陆名称。RABBITMQ_DEFAULT_PASS:默认登陆密码

    3.http://ip:15672 web页面登陆

     

     出现该页面就代表安装成功

    ketchup 中 配置 rabbitmq

    "RabbitMQ": {
        "Host": "192.168.190.4",//ip地址
        "UserName": "admin",//用户名
        "Password": "qwe123QWE",//密码
        "RetryCount": 3,//重试执行次数
        "FailCount": 1//失败执行次数
      }

    1.定义event实体

    public class UserEvent : EventHandler
    {
        public string Name { get; set; }
        public string Job { get; set; }
    }

    2.实现eventhandler

    QueueConsumerMode.Normal:一般消息
    QueueConsumerMode.Retry:重试队列
    QueueConsumerMode.Fail:死信队列
        [QueueConsumer(nameof(HelloEventHandler), QueueConsumerMode.Normal, QueueConsumerMode.Retry, QueueConsumerMode.Fail)]
        public class HelloEventHandler : BaseEventHandler<UserEvent>
        {
         //实现一般队列与重试队列
    public override Task Handle(UserEvent @event) { Console.WriteLine($"消费。{@event.Name}---{@event.Job}"); throw new Exception(); }      //实现一般队列与重试队列 public override Task Handled(EventContext context) { Console.WriteLine($"调用{context.Count}次。类型:{context.Type}"); var model = context.Content as UserEvent; return Task.CompletedTask; }      //实现死信队列方法 public override Task FailHandler(EventContext context) { Console.WriteLine($"调用{context.Count}次。私信队列方法 ,方法,类型:{context.Type}"); return base.FailHandler(context); } }

    3.启动程序

     rabbitmq 中已经显示出队列的信息

     

     发布消息

    ServiceLocator.GetService<IEventBus>().Publish(new UserEvent()
       {
             Name = "simple",
             Job = "it"
       });

     日志显示消费

     写在最后

    QQ群:592407137 期待大家一起研究,学习~~

    如果喜欢,请给予一个Start 给予支持。谢谢!

  • 相关阅读:
    SSH框架整合实现Java三层架构实例(一)
    【面试】MySQL的事务和索引
    Spring在web开发中的应用
    Freemarker 页面静态化技术使用入门案例
    jQuery EasyUI window窗口使用实例
    zTree树形菜单交互选项卡效果实现
    zTree树形菜单使用实例
    jQuery EasyUI 选项卡面板tabs使用实例精讲
    jQuery EasyUI 折叠面板accordion的使用实例
    jQuery EasyUI布局容器layout实例精讲
  • 原文地址:https://www.cnblogs.com/alangur/p/12922571.html
Copyright © 2011-2022 走看看