package com.zheng.cms.web.schedule;
import com.taobao.pamirs.schedule.IScheduleTaskDealSingle;
import com.taobao.pamirs.schedule.TaskItemDefine;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.*;
/**
* 测试任务
* Created by zhangshuzheng on 2016/11/14.
*/
public class MapSchedule implements IScheduleTaskDealSingle<Map> {
private static Logger _log = LoggerFactory.getLogger(MapSchedule.class);
/**
* 执行单个任务
* @param item Object
* @param ownSign 当前环境名称
* @throws Exception
*/
@Override
public boolean execute(Map item, String ownSign) throws Exception {
_log.info("执行任务:{}", item);
return true;
}
/**
* 根据条件,查询当前调度服务器可处理的任务
* @param taskParameter 任务的自定义参数
* @param ownSign 当前环境名称
* @param taskItemNum 当前任务类型的任务队列数量
* @param taskItemList 当前调度服务器,分配到的可处理队列
* @param eachFetchDataNum 每次获取数据的数量
* @return
* @throws Exception
*/
@Override
public List<Map> selectTasks(String taskParameter, String ownSign, int taskItemNum, List<TaskItemDefine> taskItemList, int eachFetchDataNum) throws Exception {
List<Map> allDrawList = new ArrayList<>();
Map map = new HashMap();
map.put("ID", System.currentTimeMillis());
allDrawList.add(map);
return allDrawList;
}
/**
* 获取任务的比较器,只有在NotSleep模式下需要用到
* @return
*/
@Override
public Comparator<Map> getComparator() {
return new Comparator<Map>() {
public int compare(Map o1, Map o2) {
Long l1 = (Long) o1.get("ID");
Long l2 = (Long) o2.get("ID");
return l1.compareTo(l2);
}
public boolean equals(Object obj) {
return this == obj;
}
};
}
}