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 开发博客项目 - 给项目瘦身,让它跑起来 ...
随机推荐
- APP加固原理与作用
APP加固原理与作用 引言 在移动应用开发中,APP加固是一种保护应用代码逻辑的重要措施.通过对应用文件进行隐藏.混淆和加密等操作,可以有效提高软件的逆向成本,降低被破解的几率.本文将介绍APP加固的 ...
- 如何在传统前端项目中进行javascript模块化编程,并引入使用vue.js、element-ui,并且不依赖nodejs和webpack?
最近接手一个Web三维项目,前后端分离,前端是传统的前端项目,但又是模块化的开发方式,在修改的过程中,我需要做一些增删改查的功能,又想尽可能少的写css.尽可能少的直接操作DOM元素,所以引入了ele ...
- InnoDB 事务加锁分析
本文首发于 vivo互联网技术 微信公众号 链接:https://mp.weixin.qq.com/s/S7MhlsZveBHRSQhq5aTIJA作者:何志创 一般大家对数据库事务的了解可能停留在事 ...
- 供应链安全情报 | cURL最新远程堆溢出漏洞复现与修复建议
漏洞概述 cURL 是一个支持多种网络协议的开源项目,被广泛集成到自动化构建.网络测试.网络数据采集以及其他网络相关的任务中,备受开发者和系统管理员青睐. cURL在2023年10月11日下午紧急发布 ...
- vue实现word或pdf文档导出的功能
https://www.jianshu.com/p/73915ef6ac89 Vue - element-ui 中预览 word .exce.ppt以及pdf文件 https://blog.csdn. ...
- 堆和栈:JS数据怎么存储的?
JS数据存储主要分堆和栈两种, 栈空间:通常情况栈空间不会设置太大,主要用来存放一些原始类型的小数据,原始类型的数据有:Boolean.Null.Undefined.Number.BigInt.Str ...
- P1616-DP【橙】
这道题好几天前就写出了记搜代码,但是理论上空间恰好够,实际上不论是用new-delete还是malloc-free,都有1~2个点MLE了(最抽象的是一开始MLE两个点,我把数组两个下标调换顺序后理应 ...
- 机器学习-决策树系列-决策树-剪枝-CART算法-27
目录 1. 剪枝 2. CCP-代价复杂度剪枝(CART) 4. α值的确定 1. 剪枝 将子树还原成一个叶子节点: 是解决过拟合的一个有效方法.当树训练得过于茂盛的时候会出现在测试集上的效果比训练集 ...
- Kubernetes security context capability
注:以下内容基于经验主义,不一定对. Linux capability Linux 中,root 作为特权用户,具有执行所有应用的能力.而普通用户只能执行普通应用.如果普通用户需要执行特权应用,需要进 ...
- 入门 shell 从脚本开始 - lazy_find
编写脚本实现在指定文件路径下查找文件夹或文件名. 脚本如下: #!/bin/sh # lazy find # GNU All-Permissive License # Copying and di ...