#TBSchedule 源码改造
前段时间由于工作需要,简单研究了下tbschedule。发现其功能不错,但是真正用起来功能还是有点欠缺:
- 日志无法与现有项目相结合
- 持续需job数据时,不支持定期执行任务(quatz),只能在某个时间段内执行job
- job执行完毕之后,没有回调方法
- 运行时发生异常之后,没有提供异常处理接口
改造代码:
- com.taobao.pamirs.schedule.IScheduleTaskDeal,添加前后置处理器、异常回调
/**
* 调度器对外的基础接口
*
* @author xuannan
*
* @param <T>
* 任务类型
*/
public interface IScheduleTaskDeal<T> {
/**
* 根据条件,查询当前调度服务器可处理的任务
*
* @param taskParameter
* 任务的自定义参数
* @param ownSign
* 当前环境名称
* @param taskItemNum
* 当前任务类型的任务队列数量
* @param taskItemList
* 当前调度服务器,分配到的可处理队列
* @param eachFetchDataNum
* 每次获取数据的数量
* @return
* @throws Exception
*/
public List<T> selectTasks(String taskParameter, String ownSign, int taskItemNum, List<TaskItemDefine> taskItemList, int eachFetchDataNum) throws Exception;
/**
* 获取任务的比较器,主要在NotSleep模式下需要用到
*
* @return
*/
public Comparator<T> getComparator();
/**
* @Description: 执行任务前置处理器
* @param jobName
* 任务名称
* @param taskParameter
* 任务参数
* @param ownSign
* 所有者
* @param taskItemNum
* 任务项个数
* @param taskItemList
* 任务项集合
* @param eachFetchDataNum
* 每次获取量
* @return 任务id
* @throws
*/
public