ketcup git地址:https://github.com/simple-gr/ketchup rabbitmq 安裝 1.docker pull rabbitmq:management 2.docker run -itd --name rabbitmq --restart=always -p ...
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 給予支持。謝謝!