多语言展示
当前在线:161今日阅读:159今日分享:18

tbschedule分布式开源调度框架使用

tbschedule是淘宝提供的一个开源分布式调度框架,目的是让一种批量任务或者不断变化的任务,能够被动态的分配到多个主机的JVM中,不同的线程组中并行执行。所有的任务能够被不重复,不遗漏的快速处理。以下,讲解下如何使用tbschedule。
工具/原料
1

eclipse zookeeper

2

windows

方法/步骤
1

tbschedule控制台:从淘宝的tbschedule svn地址(不让写,自己搜下吧)中下载ScheduleConsole.war包,并导入eclipse,部署在tomcat容器中。浏览器中输入localhost:8080/ScheduleConsole/schedule/index.jsp?manager=true,出现“ZooKeeper连接配置”界面,并配置zk信息,保存(前提,先正确安装zk)。

2

调度策略:控制台中,“调度策略”界面,点击创建新策略,填写策略名称、任务类型、任务名称等信息,保存。

3

任务管理:控制台中,“任务管理”界面,点击新建任务,填写任务名称、任务处理的SpringBean、线程数、每次获取数据量、处理模式、执行开始时间、任务项等信息。注意:任务名称与调度策略中的任务名称保持一致;任务处理的SpringBean要与spring配置文件中的bean名称一致。执行开始时间不配置,表示立即开始。

4

调度类定义:调度类实现com.taobao.pamirs.schedule.IScheduleTaskDealSingle接口,并实现其selectTasks和execute方法。selectTasks查询当前调度服务器可处理的任务;execute执行任务。重点JAVA代码:for(TaskItemDefine taskItem : taskItemList) { itemList.add(Integer.valueOf(taskItem.getTaskItemId())); } item.setItemList(itemList); item.setTaskItemNum(taskItemNum);关键mapper.xml中sql条件: and 通过这2点,实现数据的分批查询

5

运行结果:本例中,共有2个任务项,运行日志中可以看出,查询结果是list===19和list===25,实现了正确的分批,且运行结果中无重复任务。每一个任务项,会等所有任务处理完毕后,才会开始下次的selectTasks。若无任务数据,则停止一定的时间后再执行。

6

调度控制台信息:任务执行后,可以在控制台中看到任务执行、机器管理、线程等情况。

7

url地址:tbschedule有2个url地址,分别为:http://localhost:8080/ScheduleConsole/schedule/index.jsp,普通权限http://localhost:8080/ScheduleConsole/schedule/index.jsp?manage=true,管理权限。可根据需要具体使用

注意事项

文中有描述不准确的地方,请更正

推荐信息