.Net PetShop 4.0的消息处理

2023-12-11 07:48
文章标签 处理 消息 net 4.0 petshop

本文主要是介绍.Net PetShop 4.0的消息处理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 .Net PetShop 4.0对订单的处理提供了两种方式以供选择,一种是同步处理,一种是异步处理。同步处理就不再多说了,使用普通的数据库存取方式;异步处理便是采用消息处理方式。

MSDN中介绍说利用消息队列,应用程序开发人员可以通过发送和接收消息方便地与应用程序进行快速可靠的通信。消息处理为您提供了有保障的消息传递和执行许多业务处理的可靠的防故障方法。具体来说,当数据库出现短时异常时,利用消息处理方式,可以对已提交的消息进行恢复,提高系统的可靠性。

下面重点来探讨.Net PetShop 4.0中的订单处理和消息处理。

PetShop.IMessaging
PetShop.MSMQMessaging
PetShop.MessagingFactory
PetShop.IBLLStrategy
PetShop.BLL
PetShop.OrderProcessor

一、PetShop.IMessaging命名空间

PetShop.IMessaging提供了一个接口IOrder,这个接口包含Receive和Send方法。

二、PetShop.MSMQMessaging命名空间

PetShop.MSMQMessaging提供了两个类Order和PetShopQueue。PetShopQueue实现了IDisposable接口,该类中还使用了.NET框架System.Messaging命名空间中的MessageQueue和Message类。

Order类继承PetShopQueue类,并实现IOrder接口。

三、PetShop.MessagingFactory命名空间

PetShop.MessagingFactory提供了一个自封装的类QueueAccess,该类同样实现了工厂模式,只不过这个工厂只生产一个“商品”——PetShop.MSMQMessaging.Order。

四、PetShop.IBLLStrategy命名空间

PetShop.IBLLStrategy提供了一个接口IOrderStrategy,该接口只有一个方法Insert。

五、PetShop.BLL命名空间

PetShop.BLL是.Net PetShop 4.0的业务逻辑层命名空间,其中包含Cart、Order、Item、Product等类,本文只关心其中的三个类:OrderAsynchronous、OrderSynchronous和Order。

OrderAsynchronous和OrderSynchronous是对IOrderStrategy接口的实现,前者是异步方式,后者是同步方式。Order类有三个主要的方法,分别是获取订单GetOrder、插入订单Insert和从队列里接收订单ReceiveFromQueue。

插入订单Insert有两种方式:同步和异步,它通过调用Order类的一个私有方法LoadInsertStrategy产生一个OrderAsynchronous或OrderSynchronous的实例,是工厂模式的又一次应用。

而获取订单GetOrder则是在订单处理完成之后再从数据库中获取的,它只与数据访问层(DAL)有关。由于.Net PetShop 4.0在数据访问层上也使用了工厂模式,因此在这里是通过调用PetShop.DALFactory.DataAccess.CreateOrder()创建一个实例dal,通过调用实例的GetOrder方法获取订单对象。

从队列里接收订单ReceiveFromQueue是在异步方式中使用的,这个方法将在订单处理PetShop.OrderProcessor中调用,在异步方式中将订单保存到数据持久层。

六、PetShop.OrderProcessor命名空间

PetShop.OrderProcessor提供了一个Program类,它是一个控制台程序。只如其注释里所写,在实际应用中,一般更愿意将其作为一个Windows Service程序来实现。它的功能是在异步方式中将订单保存到数据持久层。当然,保存订单还是通过调用业务逻辑层的Order类的Insert方法,将其保存到数据库中的。

需要说明的是,消息队列在Windows中必须进行安装。在控制面析->添加/删除程序->添加/删除Windows 组件中,选择消息队列复选框进行安装。

下面是web.config中有关消息的配置:

<!--  Order processing options (Asynch/Synch)  -->
< add  key ="OrderStrategyAssembly"  value ="PetShop.BLL" />
< add  key ="OrderStrategyClass"  value ="PetShop.BLL.OrderSynchronous" />
<!--  Asynchronous Order options  -->
< add  key ="OrderMessaging"  value ="PetShop.MSMQMessaging" />
< add  key ="OrderQueuePath"  value ="FormatName:DIRECT=OS:MachineNamePrivate$PSOrders" />

这篇关于.Net PetShop 4.0的消息处理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/479967

相关文章

解决hive启动时java.net.ConnectException:拒绝连接的问题

《解决hive启动时java.net.ConnectException:拒绝连接的问题》Hadoop集群连接被拒,需检查集群是否启动、关闭防火墙/SELinux、确认安全模式退出,若问题仍存,查看日志... 目录错误发生原因解决方式1.关闭防火墙2.关闭selinux3.启动集群4.检查集群是否正常启动5.

Python调用LibreOffice处理自动化文档的完整指南

《Python调用LibreOffice处理自动化文档的完整指南》在数字化转型的浪潮中,文档处理自动化已成为提升效率的关键,LibreOffice作为开源办公软件的佼佼者,其命令行功能结合Python... 目录引言一、环境搭建:三步构建自动化基石1. 安装LibreOffice与python2. 验证安装

Java使用Thumbnailator库实现图片处理与压缩功能

《Java使用Thumbnailator库实现图片处理与压缩功能》Thumbnailator是高性能Java图像处理库,支持缩放、旋转、水印添加、裁剪及格式转换,提供易用API和性能优化,适合Web应... 目录1. 图片处理库Thumbnailator介绍2. 基本和指定大小图片缩放功能2.1 图片缩放的

Python进行JSON和Excel文件转换处理指南

《Python进行JSON和Excel文件转换处理指南》在数据交换与系统集成中,JSON与Excel是两种极为常见的数据格式,本文将介绍如何使用Python实现将JSON转换为格式化的Excel文件,... 目录将 jsON 导入为格式化 Excel将 Excel 导出为结构化 JSON处理嵌套 JSON:

Spring Boot 中的默认异常处理机制及执行流程

《SpringBoot中的默认异常处理机制及执行流程》SpringBoot内置BasicErrorController,自动处理异常并生成HTML/JSON响应,支持自定义错误路径、配置及扩展,如... 目录Spring Boot 异常处理机制详解默认错误页面功能自动异常转换机制错误属性配置选项默认错误处理

SpringBoot 异常处理/自定义格式校验的问题实例详解

《SpringBoot异常处理/自定义格式校验的问题实例详解》文章探讨SpringBoot中自定义注解校验问题,区分参数级与类级约束触发的异常类型,建议通过@RestControllerAdvice... 目录1. 问题简要描述2. 异常触发1) 参数级别约束2) 类级别约束3. 异常处理1) 字段级别约束

RabbitMQ消息总线方式刷新配置服务全过程

《RabbitMQ消息总线方式刷新配置服务全过程》SpringCloudBus通过消息总线与MQ实现微服务配置统一刷新,结合GitWebhooks自动触发更新,避免手动重启,提升效率与可靠性,适用于配... 目录前言介绍环境准备代码示例测试验证总结前言介绍在微服务架构中,为了更方便的向微服务实例广播消息,

Java堆转储文件之1.6G大文件处理完整指南

《Java堆转储文件之1.6G大文件处理完整指南》堆转储文件是优化、分析内存消耗的重要工具,:本文主要介绍Java堆转储文件之1.6G大文件处理的相关资料,文中通过代码介绍的非常详细,需要的朋友可... 目录前言文件为什么这么大?如何处理这个文件?分析文件内容(推荐)删除文件(如果不需要)查看错误来源如何避

使用Python构建一个高效的日志处理系统

《使用Python构建一个高效的日志处理系统》这篇文章主要为大家详细讲解了如何使用Python开发一个专业的日志分析工具,能够自动化处理、分析和可视化各类日志文件,大幅提升运维效率,需要的可以了解下... 目录环境准备工具功能概述完整代码实现代码深度解析1. 类设计与初始化2. 日志解析核心逻辑3. 文件处

Java docx4j高效处理Word文档的实战指南

《Javadocx4j高效处理Word文档的实战指南》对于需要在Java应用程序中生成、修改或处理Word文档的开发者来说,docx4j是一个强大而专业的选择,下面我们就来看看docx4j的具体使用... 目录引言一、环境准备与基础配置1.1 Maven依赖配置1.2 初始化测试类二、增强版文档操作示例2.