@@ -15,7 +15,7 @@ LTS 轻量级分布式任务调度框架(Light Task Schedule)
1515##节点组:
1616* 1 . 一个节点组等同于一个集群,同一个节点组中的各个节点是对等的,外界无论连接节点组中的任务一个节点都是可以的。
1717* 2 . 每个节点组中都有一个master节点,采用zookeeper进行master选举(master宕机,会自动选举出新的master节点),框架会提供接口API来监听master节点的变化,用户可以自己使用master节点做自己想做的事情。
18- * 3 . JobClient和TaskTracker都可以存在多个节点组。譬如 JobClient 可以存在多个节点组。 譬如:JobClient 节点组为 ‘QN_WEB ’ 中的一个节点提交提交一个 只有节点组为’QN_TRADE ’的 TaskTracker 才能执行的任务。
18+ * 3 . JobClient和TaskTracker都可以存在多个节点组。譬如 JobClient 可以存在多个节点组。 譬如:JobClient 节点组为 ‘lts_WEB ’ 中的一个节点提交提交一个 只有节点组为’lts_TRADE ’的 TaskTracker 才能执行的任务。
1919* 4 . (每个集群中)JobTacker只有一个节点组。
2020* 5 . 多个JobClient节点组和多个TaskTracker节点组再加上一个JobTacker节点组, 组成一个大的集群。
2121
@@ -57,7 +57,7 @@ LTS 轻量级分布式任务调度框架(Light Task Schedule)
5757 // 节点信息配置
5858 jobTracker. setZookeeperAddress(" localhost:2181" );
5959 // jobTracker.setListenPort(35001); // 默认 35001
60- // jobTracker.setClusterName("QN ");
60+ // jobTracker.setClusterName("lts ");
6161
6262 // mongo 配置
6363 Config config = new Config ();
@@ -103,20 +103,63 @@ LTS 轻量级分布式任务调度框架(Light Task Schedule)
103103 </bean >
104104```
105105
106+ ## TaskTracker端
107+ ``` java
108+ TaskTracker taskTracker = new TaskTracker ();
109+ taskTracker. setJobRunnerClass(TestJobRunner . class);
110+ // jobClient.setClusterName("lts");
111+ taskTracker. setZookeeperAddress(" localhost:2181" );
112+ taskTracker. setNodeGroup(" test_trade_TaskTracker" );
113+ taskTracker. setWorkThreads(20 );
114+ taskTracker. start();
115+
116+ // 任务执行类
117+ public class TestJobRunner implements JobRunner {
118+
119+ @Override
120+ public void run (Job job ) throws Throwable {
121+
122+ System . out. println(" 我要执行" + job);
123+ System . out. println(job. getParam(" shopId" ));
124+
125+ try {
126+ Thread . sleep(5 * 1000L );
127+ } catch (InterruptedException e) {
128+ e. printStackTrace();
129+ }
130+
131+ }
132+ }
133+ ```
134+ 或者Spring方式配置
135+ ``` xml
136+ <bean id =" taskTracker" class =" com.lts.job.spring.TaskTrackerFactoryBean" init-method =" start" >
137+ <!-- <property name="clusterName" value="lts"/>-->
138+ <property name =" nodeGroup" value =" test_trade_TaskTracker" /><!-- 所属节点组名称 -->
139+ <property name =" zookeeperAddress" value =" localhost:2181" />
140+ <property name =" jobRunnerClass" value =" com.lts.job.example.support.TestJobRunner" /> <!-- 任务执行类 -->
141+ <property name =" workThreads" value =" 1" /> <!-- 工作线程个数 -->
142+ <property name =" masterNodeChangeListeners" > <!-- 所属节点组中master节点变化监听器,可以不用配置 -->
143+ <array >
144+ <bean class =" com.lts.job.example.support.MasterNodeChangeListenerImpl" />
145+ </array >
146+ </property >
147+ </bean >
148+ ```
106149
107150## JobClient端
108151``` java
109152 JobClient jobClient = new RetryJobClient ();
110153 // JobClient jobClient = new JobClient();
111- jobClient. setNodeGroup(" TEST " );
112- // jobClient.setClusterName("QN ");
154+ jobClient. setNodeGroup(" test_JobClient " );
155+ // jobClient.setClusterName("lts ");
113156 jobClient. setZookeeperAddress(" localhost:2181" );
114157 jobClient. start();
115158
116159 // 提交任务
117160 Job job = new Job ();
118161 job. setParam(" shopId" , " 11111" );
119- job. setTaskTrackerNodeGroup(" TEST_TRADE " );
162+ job. setTaskTrackerNodeGroup(" test_trade_TaskTracker " );
120163 // job.setCronExpression("0 0/1 * * * ?"); // 支持 cronExpression表达式
121164 // job.setTriggerTime(new Date().getTime()); // 支持指定时间执行
122165 Response response = jobClient. submitJob(job);
@@ -126,7 +169,7 @@ LTS 轻量级分布式任务调度框架(Light Task Schedule)
126169 <bean id =" jobClient" class =" com.lts.job.spring.JobClientFactoryBean" init-method =" start" >
127170 <property name =" clientType" value =" retry" /> <!-- 取值: 为空(默认normal), normal, retry -->
128171 <!-- <property name="clusterName" value="lts"/>--> <!-- 默认 defaultCluster -->
129- <property name =" nodeGroup" value =" TEST " /> <!-- 节点组名称 -->
172+ <property name =" nodeGroup" value =" test_JobClient " /> <!-- 节点组名称 -->
130173 <property name =" zookeeperAddress" value =" localhost:2181" />
131174 <property name =" jobFinishedHandler" >
132175 <bean class =" com.lts.job.example.support.JobFinishedHandlerImpl" /> <!-- 任务完成处理器 -->
@@ -144,54 +187,10 @@ LTS 轻量级分布式任务调度框架(Light Task Schedule)
144187 // 提交任务
145188 Job job = new Job ();
146189 job. setParam(" shopId" , " 11111" );
147- job. setTaskTrackerNodeGroup(" TEST_TRADE " );
190+ job. setTaskTrackerNodeGroup(" test_trade_TaskTracker " );
148191 // job.setCronExpression("0 0/1 * * * ?"); // 支持 cronExpression表达式
149192 // job.setTriggerTime(new Date().getTime()); // 支持指定时间执行
150193 Response response = jobClient. submitJob(job);
151194```
152195
153- ## TaskTracker端
154- ``` java
155- TaskTracker taskTracker = new TaskTracker ();
156- taskTracker. setJobRunnerClass(TestJobRunner . class);
157- // jobClient.setClusterName("QN");
158- taskTracker. setZookeeperAddress(" localhost:2181" );
159- taskTracker. setNodeGroup(" TEST_TRADE" );
160- taskTracker. setWorkThreads(20 );
161- taskTracker. start();
162-
163- // 任务执行类
164- public class TestJobRunner implements JobRunner {
165-
166- @Override
167- public void run (Job job ) throws Throwable {
168-
169- System . out. println(" 我要执行" + job);
170- System . out. println(job. getParam(" shopId" ));
171-
172- try {
173- Thread . sleep(5 * 1000L );
174- } catch (InterruptedException e) {
175- e. printStackTrace();
176- }
177-
178- }
179- }
180- ```
181- 或者Spring方式配置
182- ``` xml
183- <bean id =" taskTracker" class =" com.lts.job.spring.TaskTrackerFactoryBean" init-method =" start" >
184- <!-- <property name="clusterName" value="lts"/>-->
185- <property name =" nodeGroup" value =" TEST_TRADE" /><!-- 所属节点组名称 -->
186- <property name =" zookeeperAddress" value =" localhost:2181" />
187- <property name =" jobRunnerClass" value =" com.lts.job.example.support.TestJobRunner" /> <!-- 任务执行类 -->
188- <property name =" workThreads" value =" 1" /> <!-- 工作线程个数 -->
189- <property name =" masterNodeChangeListeners" > <!-- 所属节点组中master节点变化监听器,可以不用配置 -->
190- <array >
191- <bean class =" com.lts.job.example.support.MasterNodeChangeListenerImpl" />
192- </array >
193- </property >
194- </bean >
195- ```
196-
197196
0 commit comments