笔记-NopCommerce系统架构分析-事件机制

来源:互联网 发布:剑三笔记本优化版没了 编辑:程序博客网 时间:2024/05/12 00:02

事件机制数据库中类似触发器功能。通过它可以订阅某个实体的添加、更新或删除数据后的处理操作。主要用于在数据变动时清理数据相关系统缓存。

应用场景

如当更新某个产品时,事件触发删除该产品的缓存处理程序。

主要对象:

事件消息类型:添加(EventInserted<T>)、更新(EventUpdated<T>)、删除(EventDeleted<T>

事件发布者(IEventPublisher):发布某种消息类型的事件,如当添加了某个产品时,发布产品添加事件。

事件订阅者(IConsumer):订阅某种消息类型的事件,如当需要监视产品总量变动时,订阅产品添加事件。

事件服务(ISubscriptionService):发布者与订阅者的中间关系处理,用于查找相应相应消息类型的订阅者。

现有用例

在数据访问中为了避免对数据库的多次读取操作,对主要业务实体实现了缓存机制。

当系统中存在缓存时,为了在数据更新的时候能及时清理缓存。

在系统中实现了事件机制。

当有数据添加或更改时,事件响影,并清理缓存。

业务流程

订阅

实现IConsumer接口即可订阅事件。

获取订阅者

由程序启动时,通过TypeFinder查找所有程序集中实现IConsumer接口的类,并注册Ioc以单实例缓存在系统中。

事件发布

通过发布者发布.(通过事件服务查找所有订阅者,并将事件消息传到订阅者事件句柄中。)

事件服务

通过反射在程序启动时获得所有订阅者,并将订阅者存在IOC中。

业务规则

事件的应用模式,适用于当数据变化时应引起的业务或系统数据的变化。

原创粉丝点击