tbschedule3.3.3+spring+maven实例教程
tbschedule是淘宝的一个分布式任务调度框架,可访问官方网址http://code.taobao.org/p/tbschedule/wiki/index/获取源代码和了解具体的介绍,在这里就不再做重复的介绍了,直接给出实例教程。
1、在maven的pom.xml中引入tbschedule依赖
<dependency> <groupId>com.taobao.pamirs.schedule</groupId> <artifactId>tbschedule</artifactId> <version>3.3.3.2</version> </dependency>
2、创建任务处理类
需实现IScheduleTaskDealSingle 单任务处理的接口 或者 IScheduleTaskDealMulti 可批处理的任务接口
@Component public class SingleJob implements IScheduleTaskDealSingle<TaskModel> { private static final Logger LOG = LoggerFactory.getLogger(SingleJob.class); private static int num = 1; @Override public boolean execute(TaskModel taskModel, String ownSign) throws Exception { LOG.info(Thread.currentThread().getName() + " IScheduleTaskDealSingleTest执行开始啦.........." + new Date()); System.out.println(JSON.toJSONString(taskModel)); return true; } /** * @param taskParameter 自定义参数(字符串) * @param ownSign 环境 * @param taskQueueNum 任务项的数量 * @param taskItemList 集合中TaskItemDefine的id值对应任务项值 * @param eachFetchDataNum 每次获取数据量 * @return * @throws Exception */ @Override public List<TaskModel> selectTasks(String taskParameter, String ownSign, int taskQueueNum, List<TaskItemDefine> taskItemList, int eachFetchDataNum) throws Exception { LOG.info(Thread.currentThread().getName() + " IScheduleTaskDealSingleTest配置的参数,taskParameter:{},ownSina:{},taskQueueNum:{},taskItemList:{}, eachFetchDataNum:{}", taskParameter, ownSign, taskQueueNum, taskItemList, eachFetchDataNum); List<TaskModel> models = new ArrayList<>(); for (int i = 0; i < 1000; i++) { models.add(new TaskModel(String.valueOf(System.currentTimeMillis()), "taosirTest" + i)); models.add(new TaskModel(String.valueOf(System.currentTimeMillis()), "taosirTest" + i)); } return models; } @Override public Comparator<TaskModel> getComparator() { return null; } }
3、在spring配置文件中添加配置
<bean id="scheduleManagerFactory" class="com.taobao.pamirs.schedule.strategy.TBScheduleManagerFactory" init-method="init"> <property name="zkConfig"> <map> <entry key="zkConnectString" value="${schedule.zookeeper.address}" /> <entry key="rootPath" value="${schedule.root.catalog}" /> <entry key="zkSessionTimeout" value="${schedule.timeout}" /> <entry key="userName" value="${schedule.username}" /> <entry key="password" value="${schedule.password}" /> <entry key="isCheckParentPath" value="true" /> </map> </property> </bean>经过这三步,开发任务已经完成。
4.在tbschedule的web控制台配置策略和任务。
4.1 配置zookeeper的相关信息
4.2 配置策略
4.3 配置任务
ScheduleConsole.war可从源代码中获得,部署到tomcat中即可,zookeeper的部署可参考相关文章。
配置好之后,把自己的项目部署到tomcat启动任务即可执行。
如在应用中遇到什么问题,欢迎留言评论交流。