扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:builder.com.cn 2007年6月20日
关键字: Zach Smith DotNet
文件侦听组件
在本系列的第一部分,作者为我们介绍了一个动态可升级文件导入系统的整体结构。在系列的第二部分,他将为我们详细介绍如何利用.NET框架技术设计一个高度灵活可升级的文件处理系统,并向大家展示文件侦听组件是如何实现的。
在进入解压组件、解析库、或将数据插入数据库之前,我们需要解决当一个文件已经进入系统时如何发现它。这是导入处理十分关键的部分,原因很简单因为每个送入系统的文件都必须经过该模块。
如果侦听组件丢掉一个文件或停止工作,那么我们的整个系统就无用了。当然,另一方面如我文件侦听组件工作快速稳定,就会使得系统的其它部分同样能够快速稳定的工作。
在我们的体系结构中侦听组件的工作很简单:探测进入系统的文件并发送一个消息给处理队列用来表明一个新的文件已经到达。
侦听组件设计
根据你的要求,在设计侦听组件时,可能要考虑很多不同的事情。例如,如果你需要探测的是被上传到 FTP服务器的文件,那么要考虑的因素就与探测被放置在一个映射网络驱动器上的文件有所不同。
因此我们需要将侦听器模块化且不依赖于系统的其它部分。这里,我们的目的是设计一个新的侦听器使它能够满足不断改变的业务需求而不必改变已经存在的代码库或进程。
为了实现这一目标,我们的侦听器应该设计成一个独立进程。对于此类任务Windows服务能够很好的完成,但是理论上任何独立进程都可以作为一个侦听器。
图A向大家展示了侦听器组件是如何适合整个体系结构的。
图 A
侦听组件设计
正如你所看到的,每个侦听器都是独立的,它们通过发送到处理队列(这是一个微软消息队列)的文件处理消息连接到系统的其它部分。如果你不清楚处理队列的作用或你认为需要一个刷新器,请查看本系列的第一部分。
这种安排可以使每个侦听组件独立工作互不干扰。例如,扫描100台不同的FTP服务器查找要导入的文件,没有任何事情可以使FTP侦听器停止工作。侦听器实际上必须做的事情就是探测文件并发送文件处理消息到处理队列。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者