RabbitMQ集成系统文章02---webForm发布 ABP VNext订阅
一、webForm项目中发布
1、引用RabbitMQ.Client

2、在你想要发布的地方调用如下的方法
public void PublishRabbitMQ()
{ var data = new { ProductId = Guid.NewGuid(), NewCount = 10};
try
{
var factory = new RabbitMQ.Client.ConnectionFactory();
factory.HostName = "xxx.xxx.xxx.xxx";
factory.UserName = "root";
factory.Password = "123456";
factory.Port = 5672; factory.VirtualHost = "/";
using (var connection = factory.CreateConnection())
{
using (IModel channel = connection.CreateModel())
{
channel.QueueDeclare(Convert.ToString("master-queue"), true, false, false, null);
IBasicProperties properties = channel.CreateBasicProperties();
properties.Persistent = true;
properties.DeliveryMode = 2;
properties.Expiration = "172800000";//48小时过期 string da = Newtonsoft.Json.JsonConvert.SerializeObject(data).Replace("\r\n", ""); channel.BasicPublish(
exchange: "xxxUpdate",
routingKey: Convert.ToString("xxx.Product.StockChange"),
mandatory: true,
basicProperties: properties,
body: Encoding.UTF8.GetBytes(da));
}
} }
catch (Exception ex)
{ } }
二、ABP Vnext项目中订阅
1、appsettings.json文件中配置,注意此处的ExchangeName要与webForm项目中的相同
"RabbitMQ": {
"Connections": {
"Default": {
"HostName": "xxx.xxx.xxx.xxx",
"Port": "5672",
"UserName": "root",
"Password": "123456",
"VirtualHost": "/"
}
},
"EventBus": {
"ClientName": "xxxUpdate_baseInfoService",
"ExchangeName": "xxxUpdate"
}
}
2、在调用的项目中引用Nuget包

3、在项目中依赖模块 [DependsOn(typeof(AbpEventBusRabbitMqModule))]

4、订阅事件


[EventName("xxx.Product.StockChange")]
public class StockCountChangedEto
{
public Guid ProductId { get; set; }
public int NewCount { get; set; }
}
public class MyHandler
: IDistributedEventHandler<StockCountChangedEto>,
ITransientDependency
{
public async Task HandleEventAsync(StockCountChangedEto eventData)
{
var productId = eventData.ProductId;
}
}
RabbitMQ集成系统文章02---webForm发布 ABP VNext订阅的更多相关文章
- 基于 abp vNext 和 .NET Core 开发博客项目 - 终结篇之发布项目
系列文章 基于 abp vNext 和 .NET Core 开发博客项目 - 使用 abp cli 搭建项目 基于 abp vNext 和 .NET Core 开发博客项目 - 给项目瘦身,让它跑起来 ...
- [Abp vNext微服务实践] - 文章目录
简介 ABP vNext是volosoft的新一代框架,ABP(vNext)完全使用.NET CORE和DDD(领域驱动)打造,目前GitHub已有6K+次提交,发布版本超过40次,Nuget包下载量 ...
- 基于 abp vNext 微服务开发的敏捷应用构建平台 - 文章目录
系列文章: <基于 abp vNext 微服务开发的敏捷应用构建平台 - 设计构想> [点击查看] <基于 abp vNext 微服务开发的敏捷应用构建平台 - 文章目录> [ ...
- 基于 abp vNext 和 .NET Core 开发博客项目 - 博客接口实战篇(一)
系列文章 基于 abp vNext 和 .NET Core 开发博客项目 - 使用 abp cli 搭建项目 基于 abp vNext 和 .NET Core 开发博客项目 - 给项目瘦身,让它跑起来 ...
- 基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(三)
系列文章 基于 abp vNext 和 .NET Core 开发博客项目 - 使用 abp cli 搭建项目 基于 abp vNext 和 .NET Core 开发博客项目 - 给项目瘦身,让它跑起来 ...
- 基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(八)
系列文章 基于 abp vNext 和 .NET Core 开发博客项目 - 使用 abp cli 搭建项目 基于 abp vNext 和 .NET Core 开发博客项目 - 给项目瘦身,让它跑起来 ...
- 基于 abp vNext 和 .NET Core 开发博客项目 - 博客接口实战篇(二)
系列文章 基于 abp vNext 和 .NET Core 开发博客项目 - 使用 abp cli 搭建项目 基于 abp vNext 和 .NET Core 开发博客项目 - 给项目瘦身,让它跑起来 ...
- 基于 abp vNext 和 .NET Core 开发博客项目 - 博客接口实战篇(三)
系列文章 基于 abp vNext 和 .NET Core 开发博客项目 - 使用 abp cli 搭建项目 基于 abp vNext 和 .NET Core 开发博客项目 - 给项目瘦身,让它跑起来 ...
- 基于 abp vNext 和 .NET Core 开发博客项目 - 博客接口实战篇(四)
系列文章 基于 abp vNext 和 .NET Core 开发博客项目 - 使用 abp cli 搭建项目 基于 abp vNext 和 .NET Core 开发博客项目 - 给项目瘦身,让它跑起来 ...
- 基于 abp vNext 和 .NET Core 开发博客项目 - 博客接口实战篇(五)
系列文章 基于 abp vNext 和 .NET Core 开发博客项目 - 使用 abp cli 搭建项目 基于 abp vNext 和 .NET Core 开发博客项目 - 给项目瘦身,让它跑起来 ...
随机推荐
- Python openpyxl 将 Excel中的汉字 转换成拼音首字母
将Excel中的汉字列,转换成拼音首字母,并保存 需要安装导入 pypinyin.openpyxl 库 # pip install pypinyin from pypinyin import laz ...
- 协同导航定位技术:为GPS定位盲区而生
导航技术和我们的生活息息相关.行人导航系统是一种为行人提供导航服务的便携式设备,可以适应地下.矿洞等卫星信号拒止的地区,以及大商场等拓扑结构复杂的地区,通常基于MIMU实现,本质上是惯性导航系统的一种 ...
- MB51选择屏幕与报表增强
1.文档说明 如之前文档<MIGO新增页签增强>,在MIGO中增强自定义字段,那么在查询MB51时,想通过自定义字段进行筛选,并将数据展示到报表中,就需要对MB51进行增强. 此处需要说明 ...
- 【库函数】在什么时候使用 string_view 代替 string
前言 C++17增加了std::string_view,它在很多情况会优于使用std::string . 尤其是用做函数形参的时候,使用std::string_view基本一定优于老式的const s ...
- kafka集群三、增加密码验证
系列导航 一.kafka搭建-单机版 二.kafka搭建-集群搭建 三.kafka集群增加密码验证 四.kafka集群权限增加ACL 五.kafka集群__consumer_offsets副本数修改 ...
- S3C2440移植uboot之编译烧写uboot
目录 移植环境 获取uboot 更新交叉编译工具 配置环境变量 移植环境 主 机:VMWare--ubuntu16.04 开发板:S3C2440 编译器:arm-linux-gcc-4.3.2.tgz ...
- 元素偏移量offset系列
1.1 offset概述 offset翻译过来,就是偏移量,我们使用offset系列相关属性,可以动态的得到该元素的位置(偏移).大小等. 获取元素距离带有定位父元素的位置. 获得元素自身的大小(宽度 ...
- 【SHELL】变量内容替换
使用场景:变量存放的路径通常在使用时需要进行斜杠转义 WORKSPACE=`pwd` WORKSPACE=$(echo ${WORKSPACE//\//\\/})
- [转帖]给我一分钟,让你彻底明白MySQL聚簇索引和非聚簇索引
https://zhuanlan.zhihu.com/p/142139541 MySQL的InnoDB索引数据结构是B+树,主键索引叶子节点的值存储的就是MySQL的数据行,普通索引的叶子节点的值存储 ...
- [转帖]使用 mydumper/loader 全量导入数据
数据迁移 mydumper 是一个更强大的数据迁移工具,具体可以参考 https://github.com/maxbube/mydumper. 我们使用 mydumper 从 MySQL 导出数据,然 ...