-
C#教程之使用EventBus + Redis发布订阅模式提升业务执行性能(下)(2)
可以看到,我们已经将事件总线相关代码给移除了,上面代码除了向Redis的队列(List)里写入元素外就只是对订单进行了持久化动作,所以看代码就知道执行效率的提升了。
接下来,看消费服务的代码。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
static void Main( string [] args) { XTrace.UseConsole(); Console.WriteLine( "进入Redis消息订阅者模式订单消息推送订阅者客户端!" ); EventBus eventBus = new EventBus(); eventBus.EventRegister( typeof (OrderCreateEventNotifyHandle), typeof (OrderCreateEventData)); eventBus.EventRegister( typeof (OrderCreateEventStockLockHandle), typeof (OrderCreateEventData)); FullRedis fullRedis = new FullRedis( "127.0.0.1:6379" , "" , 1); fullRedis.Log = XTrace.Log; fullRedis.Timeout = 30000; OrderModel order = null ; while (order == null ) { order = fullRedis.BLPOP<OrderModel>( "orders" , 20); if (order != null ) { Console.WriteLine($ "得到订单信息:{JsonConvert.SerializeObject(order)}" ); //执行相关事件 eventBus.Trigger( new OrderCreateEventData() { Order = order, }); //再次设置为null方便循环读取 order = null ; } } Console.ReadLine(); } |
栏目列表
最新更新
C# 面向对象
假设客车的座位数是9行4列,使用二维数
C#基于接口设计三层架构Unity篇
C#线程 入门
C#读取静态类常量属性和值
C# 插件式编程
C# 委托与事件有啥区别?
C#队列学习笔记:队列(Queue)和堆栈(Stack
linq 多表分组左连接查询查询统计
C#队列学习笔记:MSMQ入门一
C# 在Word中添加Latex 数学公式和符号
inncheck命令 – 检查语法
基于UDP的服务器端和客户端
再谈UDP和TCP
在socket编程中使用域名
网络数据传输时的大小端问题
socket编程实现文件传输功能
如何优雅地断开TCP连接?
图解TCP四次握手断开连接
详细分析TCP数据的传输过程
SqlServer 利用游标批量更新数据
BOS只读状态修改
SQL Server等待事件—PAGEIOLATCH_EX
数据库多行转换为单一列
获取数据表最后最后访问,修改,更新,
计算经历的时间
SQL查询结果自定义排序
修改数据库默认位置
日期简单加或减
从日期获取年,月或日