net5集成Cap

net5集成Cap

1、新建站点,net5

2、添加引用

nuget添加:

DotNetCore.CAP

DotNetCore.CAP.RabbitMQ    --使用了rabbirmq需要用到

DotNetCore.CAP.MySql          --使用了mysql做存储,需要用到

DotNetCore.CAP.Dashboard  -- 使用面板需要用到

3、ConfigServices增加代码

services.AddCap(options =>
            {
                options.UseMySql(x =>
                {
                    x.TableNamePrefix = "mycap";
                    x.ConnectionString = "mysql连接语句";
                });
                options.UseRabbitMQ(x =>
                {
                    x.HostName = “localhost";
                    x.UserName ="guest";
                    x.Password = "guest";
                    x.Port = 5672;

                });

                options.UseDashboard();
            });

这样基本配置就配置完成了,接下来是处理代码的处理

4、发送代码例子

        [HttpGet]
        public void SendCap([FromServices] ICapPublisher capObj)
        {
            var header = new Dictionary<string, string>()
            {
                ["my.header.exam"] = "headexam",
            };

            capObj.Publish("test.show.demo", DateTime.Now, header);
        }

主要记住name,接收的时候,是需要匹配上这个的

5、接收例子

        [NonAction]
        [CapSubscribe("test.show.demo")]
        public BaseResponse<DemoModelRes> ReceiveCap(DateTime time, [FromCap] CapHeader header)
        {
            //这里time就是接收的前面发送的值了,header也是前面发送的header值
            //主要是CapSubscribe的名字匹配定义的
            
            
        }

6、发送,接收加断点。运行后,调用发送的api,执行完毕后,会跳转到接收的接口里面,并且获取到接收值,同时发送的时候可以增加回调处理,也是类似这样消息名配置一样的方式,会自动触发处理

原文地址:https://www.cnblogs.com/Skyxu/p/14544224.html