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:默認登錄密碼git

3.http://ip:15672 web頁面登錄

 

 

 

 出現該頁面就表明安裝成功github

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 中已經顯示出隊列的信息web

 

 

 發佈消息docker

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

 

 日誌顯示消費ide

 

 寫在最後

QQ羣:592407137 期待你們一塊兒研究,學習~~學習

若是喜歡,請給予一個Start 給予支持。謝謝!spa

相關文章
相關標籤/搜索