Skip to content

Commit d0a5ab5

Browse files
committed
增加spring 支持
1 parent c02ad99 commit d0a5ab5

File tree

6 files changed

+56
-57
lines changed

6 files changed

+56
-57
lines changed

README.md

Lines changed: 50 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -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

job-example/src/main/java/com/lts/job/example/api/JobClientTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ public static void main(String[] args) throws IOException {
1717

1818
JobClient jobClient = new RetryJobClient();
1919
// final JobClient jobClient = new JobClient();
20-
jobClient.setNodeGroup("TEST");
20+
jobClient.setNodeGroup("test_jobClient");
2121
// jobClient.setClusterName("lts");
2222
jobClient.setZookeeperAddress("localhost:2181");
2323
// 任务重试保存地址,默认用户目录下

job-example/src/main/java/com/lts/job/example/api/TaskTrackerTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ public static void main(String[] args) {
1616
taskTracker.setJobRunnerClass(TestJobRunner.class);
1717

1818
taskTracker.setZookeeperAddress("localhost:2181");
19-
taskTracker.setNodeGroup("TEST_TRADE");
19+
taskTracker.setNodeGroup("test_trade_TaskTracker");
2020
// taskTracker.setClusterName("lts");
2121
taskTracker.setWorkThreads(20);
2222
// taskTracker.setJobInfoSavePath(Constants.USER_HOME);

job-example/src/main/java/com/lts/job/example/support/BaseJobClientTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ public void submitWithCronExpression(final JobClient jobClient, String cronExpre
7575
Job job = new Job();
7676
job.setTaskId(UUID.randomUUID().toString());
7777
job.setParam("shopId", "111");
78-
job.setTaskTrackerNodeGroup("TEST_TRADE");
78+
job.setTaskTrackerNodeGroup("test_trade_TaskTracker");
7979
job.setCronExpression(cronExpression);
8080
Response response = jobClient.submitJob(job);
8181
System.out.println(response);
@@ -85,7 +85,7 @@ public void submitWithTrigger(final JobClient jobClient, String triggerTime) thr
8585
Job job = new Job();
8686
job.setTaskId(UUID.randomUUID().toString());
8787
job.setParam("shopId", "111");
88-
job.setTaskTrackerNodeGroup("TEST_TRADE");
88+
job.setTaskTrackerNodeGroup("test_trade_TaskTracker");
8989
if (triggerTime != null && !"".equals(triggerTime.trim())) {
9090
job.setTriggerTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(triggerTime).getTime());
9191
}

job-example/src/main/resources/lts-spring-job-client.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
<bean id="jobClient" class="com.lts.job.spring.JobClientFactoryBean" init-method="start">
99
<property name="clientType" value="retry"/> <!-- 取值: 为空(默认normal), normal, retry -->
1010
<!--<property name="clusterName" value="lts"/>--> <!-- 默认 defaultCluster -->
11-
<property name="nodeGroup" value="TEST"/> <!-- 节点组名称 -->
11+
<property name="nodeGroup" value="test_JobClient"/> <!-- 节点组名称 -->
1212
<property name="zookeeperAddress" value="localhost:2181"/>
1313
<property name="jobFinishedHandler">
1414
<bean class="com.lts.job.example.support.JobFinishedHandlerImpl"/> <!-- 任务完成处理器 -->

job-example/src/main/resources/lts-spring-job-tasktracker.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
<bean id="taskTracker" class="com.lts.job.spring.TaskTrackerFactoryBean" init-method="start">
99
<!--<property name="clusterName" value="lts"/>-->
10-
<property name="nodeGroup" value="TEST_TRADE"/><!-- 所属节点组名称 -->
10+
<property name="nodeGroup" value="test_trade_TaskTracker"/><!-- 所属节点组名称 -->
1111
<property name="zookeeperAddress" value="localhost:2181"/>
1212
<property name="jobRunnerClass" value="com.lts.job.example.support.TestJobRunner"/> <!-- 任务执行类 -->
1313
<property name="workThreads" value="1"/> <!-- 工作线程个数 -->

0 commit comments

Comments
 (0)