笔记-NopCommerce系统架构分析-任务机制

来源:互联网 发布:淘宝买家怎么用淘宝客 编辑:程序博客网 时间:2024/05/16 01:58

任务机制分为两个类型,一是计划任务,二是启动时任务。

计划任务

是系统中实现按时间计划执行某项任务的功能。

应用场景:

固定某个时间执行的任务。

每日执行的任务。

主要对象:

Nop.Core.Domain.Tasks

ScheduleTask     计划任务实体,定义实体包含的属性。

Nop.Services.Tasks

IScheduleTaskService    系统实体业务操作,提供对计划任务的数据的增、删、改、查。

Itask          任务接口,定义计划执行的任务的所需要的方法。

Task           ScheduleTask的执行时实体,主要用于运行时创建任务和执行任务。

TaskThread  任务线程,主要通过Timer来执行线程。

TaskManager 任务管理者,用于系统运行时,任务功能的管理(初始化、启动、停用)

现有用例

日志清理计划任务(ClearLogTask)。

缓存清理计划任务(ClearCacheTask)。

消息传送任务。

业务流程

编码阶段

添加计划任务数据(ScheduleTask),设定计划任务执行时间和时间间隔。

实现ITask接口,并在接口的Excute方法中实现任务操作。

执行阶段

系统启动时,同时启动TaskManager

TaskManager获取所有计划任务,并按时间间隔别到不同的TaskThread中。

TaskManager执行所有的TaskThread的计时执行器。

TaskThread计时执行器时间到时执行计划任务。

任务执行完成后重启计时执行器继续上续操作,如果是一次性任务,则完成。

启动时任务

用于系统启动时同时启动的任务。

应用场景

数据连接任务,用于启动时判断数据库连接是否可用。

数据映射任务

主要对象:

Nop.Core.Infrastructure

IStartupTask     启动时任务规范接口,定义了执行入口和执行优先级。

现有用例

EfStartUpTask  用于数据库初始化工作。

AutoMapperStartupTask  用于数据映身工作。

业务流程

当系统启动时,在Nop引擎(NopEngine.RunStartupTasks)初始化时会获取得所有启动时任务,并执行。

阅读全文
0 0