任务管理

2017-05-24  本文已影响0人  地里蒜头

背景

系统存在定时任务的执行。如:第三方系统数据获取、系统初始化、数据转储等。任务管理至少具备下面能力

设计

配置文件加载原子任务,数据库存储任务执行的状态信息。由Quartz实现任务的执行策略,可同步或异步并发执行任务

名称 描述 备注
taskName 任务名称 -
exeClass 执行实体类 实现任务的包名类名
nextTask 后置任务 链式执行时,下个任务的名称
preTask 前置任务 树状任务,父亲任务名称
名称 描述 备注
taskName 任务名称 -
status 执行状态 -
strategy 执行策略 -
exeTime 最后一次执行时间 -
exeResult 最后一次执行结果 -
private String taskName;
private String exeClass;
private String nextTask;
private String preTask;
private String description;
private StatusEnum taskStatus;
private String strategy;
//可新起线程异步执行
public void run()
{
  execute()
 }
//同步任务执行时,调用该方法
public abstract boolean execute();
//钩子方法,可用来做通用记录日志。若具体任务有特殊需求,可覆盖实现该类
public void recordLog()
{}

3.TaskMgt
单例实现

private Map<String, AtomTask> taskMap;
private Map<String, List<AtomTask>> treeTask;
public boolean exeTaskByName(taskName, isSyn=true);  //单个任务执行
public boolean exeTaskChain(startTaskName, isSyn=true); //链式任务执行
public boolean exeTaskTree(rootTaskName, isSyn=true); //树状任务执行
上一篇下一篇

猜你喜欢

热点阅读