@@ -8,7 +8,7 @@ LTS 轻量级分布式任务调度框架(Light Task Schedule)
88* JobTracker : 负责接收并分配任务,任务调度。
99* TaskTracker: 负责执行任务,执行完反馈给JobTracker。
1010
11- 框架支持实时任务,也支持定时任务,同时也支持CronExpression
11+ 框架支持实时任务,也支持定时任务,同时也支持CronExpression, 有问题,请联系QQ
1212
1313##架构图
1414![ Aaron Swartz] ( https://raw.githubusercontent.com/qq254963746/light-task-schedule/master/data/%E6%9E%B6%E6%9E%84%E5%9B%BE.png )
@@ -40,13 +40,13 @@ LTS 轻量级分布式任务调度框架(Light Task Schedule)
4040 * 因为各个节点都是无状态的,可以动态增加机器部署实例, 节点关注者会自动发现。
4141
4242## 开发计划:
43- * WEB后台管理
44- * 框架优化
43+ * WEB后台管理
44+ * 框架优化
4545
4646## 调用示例
4747* 安装 zookeeper 和 mongo , 执行 data/mongo 目录下的 mongo.md 中的语句
4848
49- 运行 job-example模块中的例子
49+ 运行 job-example模块中的例子(包含API启动例子和Spring例子)
5050分别执行 JobTrackerTest TaskTrackerTest JobClientTest
5151
5252这里给出的是java API(设置配置)方式启动, 也可以使用spring启动默认不启用spring,需引入job-ext-spring包
@@ -78,6 +78,31 @@ LTS 轻量级分布式任务调度框架(Light Task Schedule)
7878 }));
7979
8080```
81+ 或者Spring配置
82+ ``` xml
83+ <bean id =" mongoConfig" class =" com.lts.job.store.Config" >
84+ <property name =" addresses" >
85+ <array >
86+ <value >localhost:27017</value >
87+ </array >
88+ </property >
89+ <property name =" username" value =" lts" />
90+ <property name =" password" value =" lts" />
91+ <property name =" dbName" value =" job" />
92+ </bean >
93+ <bean id =" jobTracker" class =" com.lts.job.spring.JobTrackerFactoryBean" init-method =" start" >
94+ <!-- <property name="clusterName" value="lts"/>--> <!-- 集群名称 -->
95+ <!-- <property name="listenPort" value="35001"/>--> <!-- 默认 35001 -->
96+ <property name =" zookeeperAddress" value =" localhost:2181" />
97+ <property name =" storeConfig" ref =" mongoConfig" />
98+ <property name =" masterNodeChangeListeners" >
99+ <array >
100+ <bean class =" com.lts.job.example.support.MasterNodeChangeListenerImpl" />
101+ </array >
102+ </property >
103+ </bean >
104+ ```
105+
81106
82107## JobClient端
83108``` java
@@ -96,6 +121,34 @@ LTS 轻量级分布式任务调度框架(Light Task Schedule)
96121 // job.setTriggerTime(new Date().getTime()); // 支持指定时间执行
97122 Response response = jobClient. submitJob(job);
98123```
124+ 或者spring方式启动
125+ ``` xml
126+ <bean id =" jobClient" class =" com.lts.job.spring.JobClientFactoryBean" init-method =" start" >
127+ <property name =" clientType" value =" retry" /> <!-- 取值: 为空(默认normal), normal, retry -->
128+ <!-- <property name="clusterName" value="lts"/>--> <!-- 默认 defaultCluster -->
129+ <property name =" nodeGroup" value =" TEST" /> <!-- 节点组名称 -->
130+ <property name =" zookeeperAddress" value =" localhost:2181" />
131+ <property name =" jobFinishedHandler" >
132+ <bean class =" com.lts.job.example.support.JobFinishedHandlerImpl" /> <!-- 任务完成处理器 -->
133+ </property >
134+ <property name =" masterNodeChangeListeners" ><!-- 所属节点组中master节点变化监听器 -->
135+ <array >
136+ <bean class =" com.lts.job.example.support.MasterNodeChangeListenerImpl" />
137+ </array >
138+ </property >
139+ </bean >
140+ ```
141+ ``` java
142+ // 从Spring容器中取得JobClient Bean
143+ JobClient jobClient = (JobClient ) applicationContext. getBean(" jobClient" );
144+ // 提交任务
145+ Job job = new Job ();
146+ job. setParam(" shopId" , " 11111" );
147+ job. setTaskTrackerNodeGroup(" TEST_TRADE" );
148+ // job.setCronExpression("0 0/1 * * * ?"); // 支持 cronExpression表达式
149+ // job.setTriggerTime(new Date().getTime()); // 支持指定时间执行
150+ Response response = jobClient. submitJob(job);
151+ ```
99152
100153## TaskTracker端
101154``` java
@@ -125,5 +178,20 @@ LTS 轻量级分布式任务调度框架(Light Task Schedule)
125178 }
126179 }
127180```
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+
128197
129- 有问题联系QQ:254963746
0 commit comments