Timer
类名:Timer
说明:定时器控制器,用于在某个时间点处理后台作业,适用于表单或系统级定时任务(如定时数据同步、过期任务清理等)。
构造函数
功能
初始化 Timer 类实例,默认无参数构造,主要用于初始化内部序列化工具。
接口定义
public Timer();
说明
实例化时自动初始化 JavaScriptSerializer 对象(虽标注性能问题,但仍作为兼容属性保留),子类继承时无需重写,可直接使用父类提供的序列化或执行方法。
Elapse 方法(公共方法)
功能
定时器触发入口,接收引擎实例并调用抽象方法 OnWork 执行具体后台作业,是定时器触发的统一入口。
接口定义
public void Elapse(IEngine engine);
参数说明
| 参数名称 | 是否必填 | 类型 | 描述 |
|---|---|---|---|
engine |
是 | IEngine |
执行后台作业的引擎实例,提供系统资源、服务调用等基础能力支撑 |
返回值
无。
OnWork 方法(抽象保护方法)
功能
定义定时器触发时的核心作业逻辑,由子类强制重写,实现具体的后台任务(如数据处理、服务调用等)。
接口定义
protected abstract void OnWork(IEngine engine);
参数说明
| 参数名称 | 是否必填 | 类型 | 描述 |
|---|---|---|---|
engine |
是 | IEngine |
执行作业的引擎实例,子类可通过该实例调用系统服务(如数据访问、日志记录) |
返回值
无。
Deserialize 方法
功能
将 JSON 格式字符串反序列化为指定类型的对象,简化定时任务中数据的解析(如从配置字符串解析任务参数)。
接口定义
protected T Deserialize<T>(string value);
参数说明
| 参数名称 | 是否必填 | 类型 | 描述 |
|---|---|---|---|
value |
是 | string |
待反序列化的 JSON 格式字符串(如任务配置、历史数据) |
返回值
| 类型 | 描述 |
|---|---|
T |
反序列化后得到的指定类型 T 的对象;若字符串格式无效或无法匹配类型 T,会抛出 JSON 反序列化异常 |
使用示例
// 反序列化任务配置(假设 TaskConfig 为自定义配置类)
string configJson = "{\"TaskId\":\"123\",\"ExpireDays\":30}";
TaskConfig config = Deserialize<TaskConfig>(configJson);
Serialize 方法
功能
将对象序列化为 JSON 格式字符串,用于定时任务中数据的存储或传输(如保存任务执行记录、传递参数)。
接口定义
protected string Serialize(object value);
参数说明
| 参数名称 | 是否必填 | 类型 | 描述 |
|---|---|---|---|
value |
是 | object |
待序列化的对象(如任务结果、业务数据),支持引用类型、值类型及集合类型 |
返回值
| 类型 | 描述 |
|---|---|
string |
对象序列化后的 JSON 格式字符串;若对象为 null,返回 "null" |
使用示例
// 序列化任务执行结果(假设 TaskResult 为自定义结果类)
TaskResult result = new TaskResult { Success = true, Message = "清理完成" };
string resultJson = Serialize(result);
// 后续可将 resultJson 存入日志或数据库
子类实现规范
- 必须重写
OnWork方法:子类需在该方法中编写具体定时任务逻辑,如数据清理、报表生成等,依赖IEngine实例调用系统资源。 - 序列化工具优先选择:处理数据时优先使用
Deserialize或Serialize方法,避免使用JavaScriptSerializer属性。