You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by zh...@apache.org on 2020/09/25 02:24:18 UTC
[shardingsphere-elasticjob] branch master updated: Update doc as
jobListener move to JobConfiguration (#1468) (#1489)
This is an automated email from the ASF dual-hosted git repository.
zhangliang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere-elasticjob.git
The following commit(s) were added to refs/heads/master by this push:
new 6e6ef32 Update doc as jobListener move to JobConfiguration (#1468) (#1489)
6e6ef32 is described below
commit 6e6ef32f8f443a06ed3f5e46e9030d5bd0b8a665
Author: Tboy <gu...@immomo.com>
AuthorDate: Fri Sep 25 10:24:08 2020 +0800
Update doc as jobListener move to JobConfiguration (#1468) (#1489)
---
.../elasticjob-lite/configuration/java-api.cn.md | 18 +---------------
.../elasticjob-lite/configuration/java-api.en.md | 18 +---------------
.../configuration/spring-boot-starter.cn.md | 1 +
.../configuration/spring-boot-starter.en.md | 1 +
.../configuration/spring-namespace.cn.md | 25 +---------------------
.../configuration/spring-namespace.en.md | 24 ---------------------
.../usage/job-listener/java-api.cn.md | 14 ++++++------
.../usage/job-listener/java-api.en.md | 14 ++++++------
.../usage/job-listener/listener-interface.cn.md | 14 ++++++++++++
.../usage/job-listener/listener-interface.en.md | 14 ++++++++++++
.../usage/job-listener/spring-namespace.cn.md | 5 +----
.../usage/job-listener/spring-namespace.en.md | 5 +----
...re.elasticjob.infra.listener.ElasticJobListener | 17 +++++++++++++++
.../src/main/resources/conf/job.properties | 5 -----
14 files changed, 64 insertions(+), 111 deletions(-)
diff --git a/docs/content/user-manual/elasticjob-lite/configuration/java-api.cn.md b/docs/content/user-manual/elasticjob-lite/configuration/java-api.cn.md
index 63d7142..2bb2478 100644
--- a/docs/content/user-manual/elasticjob-lite/configuration/java-api.cn.md
+++ b/docs/content/user-manual/elasticjob-lite/configuration/java-api.cn.md
@@ -44,24 +44,8 @@ chapter = true
| jobShardingStrategyType | 否 |
| jobExecutorServiceHandlerType | 否 |
| jobErrorHandlerType | 否 |
+| jobListenerTypes | 否 |
| description | 否 |
| props | 否 |
| disabled | 否 |
| overwrite | 否 |
-
-## 作业监听器配置
-
-### 常规监听器配置
-
-接口名称:org.apache.shardingsphere.elasticjob.api.listener.ElasticJobListener
-
-可配置属性:无
-
-### 分布式监听器配置
-
-类名称:org.apache.shardingsphere.elasticjob.lite.api.listener.AbstractDistributeOnceElasticJobListener
-
-| 属性名 | 构造器注入 |
-| ------------------------------ |:--------- |
-| started-timeout-milliseconds | 是 |
-| completed-timeout-milliseconds | 是 |
diff --git a/docs/content/user-manual/elasticjob-lite/configuration/java-api.en.md b/docs/content/user-manual/elasticjob-lite/configuration/java-api.en.md
index bf1fddf..2f025cd 100644
--- a/docs/content/user-manual/elasticjob-lite/configuration/java-api.en.md
+++ b/docs/content/user-manual/elasticjob-lite/configuration/java-api.en.md
@@ -44,24 +44,8 @@ Configuration:
| jobShardingStrategyType | No |
| jobExecutorServiceHandlerType | No |
| jobErrorHandlerType | No |
+| jobListenerTypes | No |
| description | No |
| props | No |
| disabled | No |
| overwrite | No |
-
-## Job Listener Configuration
-
-### Common Listener Configuration
-
-Interface name: `org.apache.shardingsphere.elasticjob.api.listener.ElasticJobListener`
-
-Configuration: no
-
-### Distributed Listener Configuration
-
-Class name: `org.apache.shardingsphere.elasticjob.lite.api.listener.AbstractDistributeOnceElasticJobListener`
-
-| Name | Constructor injection |
-| ------------------------------ |:--------------------- |
-| started-timeout-milliseconds | Yes |
-| completed-timeout-milliseconds | Yes |
diff --git a/docs/content/user-manual/elasticjob-lite/configuration/spring-boot-starter.cn.md b/docs/content/user-manual/elasticjob-lite/configuration/spring-boot-starter.cn.md
index 419b4d0..7f25c02 100644
--- a/docs/content/user-manual/elasticjob-lite/configuration/spring-boot-starter.cn.md
+++ b/docs/content/user-manual/elasticjob-lite/configuration/spring-boot-starter.cn.md
@@ -59,6 +59,7 @@ elasticjob.reg-center.server-lists=localhost:6181
| job-sharding-strategy-type | 否 |
| job-executor-service-handler-type | 否 |
| job-error-handler-type | 否 |
+| job-listener-types | 否 |
| description | 否 |
| props | 否 |
| disabled | 否 |
diff --git a/docs/content/user-manual/elasticjob-lite/configuration/spring-boot-starter.en.md b/docs/content/user-manual/elasticjob-lite/configuration/spring-boot-starter.en.md
index 80def1b..2852abd 100644
--- a/docs/content/user-manual/elasticjob-lite/configuration/spring-boot-starter.en.md
+++ b/docs/content/user-manual/elasticjob-lite/configuration/spring-boot-starter.en.md
@@ -59,6 +59,7 @@ Configuration:
| job-sharding-strategy-type | No |
| job-executor-service-handler-type | No |
| job-error-handler-type | No |
+| job-listener-types | No |
| description | No |
| props | No |
| disabled | No |
diff --git a/docs/content/user-manual/elasticjob-lite/configuration/spring-namespace.cn.md b/docs/content/user-manual/elasticjob-lite/configuration/spring-namespace.cn.md
index cfd313f..952d9a1 100644
--- a/docs/content/user-manual/elasticjob-lite/configuration/spring-namespace.cn.md
+++ b/docs/content/user-manual/elasticjob-lite/configuration/spring-namespace.cn.md
@@ -59,35 +59,12 @@ chapter = true
| job-sharding-strategy-type | 否 |
| job-executor-service-handler-type | 否 |
| job-error-handler-type | 否 |
+| job-listener-types | 否 |
| description | 否 |
| props | 否 |
| disabled | 否 |
| overwrite | 否 |
-## 作业监听配置
-
-\<elasticjob:listener />
-
-elasticjob:listener 必须配置为 elasticjob:job 的子元素,并且在子元素中只允许出现一次
-
-可配置属性:
-
-| 属性名 | 类型 | 是否必填 | 缺省值 | 描述 |
-| ------ |:------ |:------- |:----- |:-------------------------------------------------- |
-| class | String | 是 | | 前置后置任务监听实现类,需实现 ElasticJobListener 接口 |
-
-\<elasticjob:distributed-listener />
-
-elasticjob:distributed-listener 必须配置为 elasticjob:job 的子元素,并且在子元素中只允许出现一次
-
-可配置属性:
-
-| 属性名 | 类型 | 是否必填 | 缺省值 | 描述 |
-| ------------------------------ |:------ |:------- |:-------------- |:--------------------------------------------------------------------------- |
-| class | String | 是 | | 前置后置任务分布式监听实现类,需继承 AbstractDistributeOnceElasticJobListener 类 |
-| started-timeout-milliseconds | long | 否 | Long.MAX_VALUE | 最后一个作业执行前的执行方法的超时毫秒数 |
-| completed-timeout-milliseconds | long | 否 | Long.MAX_VALUE | 最后一个作业执行后的执行方法的超时毫秒数 |
-
## 事件追踪配置
\<elasticjob:rdb-event-trace />
diff --git a/docs/content/user-manual/elasticjob-lite/configuration/spring-namespace.en.md b/docs/content/user-manual/elasticjob-lite/configuration/spring-namespace.en.md
index 27ef0e7..1bb3f58 100644
--- a/docs/content/user-manual/elasticjob-lite/configuration/spring-namespace.en.md
+++ b/docs/content/user-manual/elasticjob-lite/configuration/spring-namespace.en.md
@@ -64,30 +64,6 @@ Configuration:
| disabled | No |
| overwrite | No |
-## Job Listener Configuration
-
-\<elasticjob:listener />
-
-`elasticjob:listener` must be configured as a child element of `elasticjob:job`, and configure only once in the child element.
-
-Configuration:
-
-| Name | Data Type | Required | Default Value | Description |
-| ------ |:----------- |:-------- |:------------- |:------------------------------------------------------------------------ |
-| class | String | Yes | | Common listener class, need to implement `ElasticJobListener` interface |
-
-\<elasticjob:distributed-listener />
-
-`elasticjob:distributed-listener` must be configured as a child element of `elasticjob:job`, and configure only once in the child element.
-
-Configuration:
-
-| Name | Data Type | Required | Default Value | Description |
-| ------------------------------ |:----------- |:-------- |:-------------- |:--------------------------------------------------------------------------------------------- |
-| class | String | Yes | | Distributed listener class, need to extend `AbstractDistributeOnceElasticJobListener` class |
-| started-timeout-milliseconds | long | No | Long.MAX_VALUE | The timeout in milliseconds before the last job is executed |
-| completed-timeout-milliseconds | long | No | Long.MAX_VALUE | The timeout in milliseconds after the last job is executed |
-
## Event Tracing Configuration
\<elasticjob:rdb-event-trace />
diff --git a/docs/content/user-manual/elasticjob-lite/usage/job-listener/java-api.cn.md b/docs/content/user-manual/elasticjob-lite/usage/job-listener/java-api.cn.md
index 17247e8..af2003e 100644
--- a/docs/content/user-manual/elasticjob-lite/usage/job-listener/java-api.cn.md
+++ b/docs/content/user-manual/elasticjob-lite/usage/job-listener/java-api.cn.md
@@ -10,7 +10,7 @@ chapter = true
public class JobMain {
public static void main(String[] args) {
- new ScheduleJobBootstrap(createRegistryCenter(), createJobConfiguration(), new MyElasticJobListener()).schedule();
+ new ScheduleJobBootstrap(createRegistryCenter(), createJobConfiguration()).schedule();
}
private static CoordinatorRegistryCenter createRegistryCenter() {
@@ -20,8 +20,8 @@ public class JobMain {
}
private static JobConfiguration createJobConfiguration() {
- // 创建作业配置
- ...
+ JobConfiguration jobConfiguration = JobConfiguration.newBuilder("test", 2)
+ .jobListenerTypes("simpleListener", "distributeListener").build();
}
}
```
@@ -32,9 +32,7 @@ public class JobMain {
public class JobMain {
public static void main(String[] args) {
- long startTimeoutMills = 5000L;
- long completeTimeoutMills = 10000L;
- new ScheduleJobBootstrap(createRegistryCenter(), createJobConfiguration(), new MyDistributeOnceElasticJobListener(startTimeoutMills, completeTimeoutMills)).schedule();
+ new ScheduleJobBootstrap(createRegistryCenter(), createJobConfiguration()).schedule();
}
private static CoordinatorRegistryCenter createRegistryCenter() {
@@ -44,8 +42,8 @@ public class JobMain {
}
private static JobConfiguration createJobConfiguration() {
- // 创建作业配置
- ...
+ JobConfiguration jobConfiguration = JobConfiguration.newBuilder("test", 2)
+ .jobListenerTypes("simpleListener", "distributeListener").build();
}
}
```
diff --git a/docs/content/user-manual/elasticjob-lite/usage/job-listener/java-api.en.md b/docs/content/user-manual/elasticjob-lite/usage/job-listener/java-api.en.md
index 82cc94b..22dcfd7 100644
--- a/docs/content/user-manual/elasticjob-lite/usage/job-listener/java-api.en.md
+++ b/docs/content/user-manual/elasticjob-lite/usage/job-listener/java-api.en.md
@@ -10,7 +10,7 @@ chapter = true
public class JobMain {
public static void main(String[] args) {
- new ScheduleJobBootstrap(createRegistryCenter(), createJobConfiguration(), new MyElasticJobListener()).schedule();
+ new ScheduleJobBootstrap(createRegistryCenter(), createJobConfiguration()).schedule();
}
private static CoordinatorRegistryCenter createRegistryCenter() {
@@ -20,8 +20,8 @@ public class JobMain {
}
private static JobConfiguration createJobConfiguration() {
- // Create job configuration
- ...
+ JobConfiguration jobConfiguration = JobConfiguration.newBuilder("test", 2)
+ .jobListenerTypes("simpleListener", "distributeListener").build();
}
}
```
@@ -32,9 +32,7 @@ public class JobMain {
public class JobMain {
public static void main(String[] args) {
- long startTimeoutMills = 5000L;
- long completeTimeoutMills = 10000L;
- new ScheduleJobBootstrap(createRegistryCenter(), createJobConfiguration(), new MyDistributeOnceElasticJobListener(startTimeoutMills, completeTimeoutMills)).schedule();
+ new ScheduleJobBootstrap(createRegistryCenter(), createJobConfiguration()).schedule();
}
private static CoordinatorRegistryCenter createRegistryCenter() {
@@ -44,8 +42,8 @@ public class JobMain {
}
private static JobConfiguration createJobConfiguration() {
- // Create job configuration
- ...
+ JobConfiguration jobConfiguration = JobConfiguration.newBuilder("test", 2)
+ .jobListenerTypes("simpleListener", "distributeListener").build();
}
}
```
diff --git a/docs/content/user-manual/elasticjob-lite/usage/job-listener/listener-interface.cn.md b/docs/content/user-manual/elasticjob-lite/usage/job-listener/listener-interface.cn.md
index 1d423fb..6f2c637 100644
--- a/docs/content/user-manual/elasticjob-lite/usage/job-listener/listener-interface.cn.md
+++ b/docs/content/user-manual/elasticjob-lite/usage/job-listener/listener-interface.cn.md
@@ -22,6 +22,11 @@ public class MyJobListener implements ElasticJobListener {
public void afterJobExecuted(ShardingContexts shardingContexts) {
// do something ...
}
+
+ @Override
+ public String getType() {
+ return "simpleJobListener";
+ }
}
```
@@ -47,5 +52,14 @@ public class MyDistributeOnceJobListener extends AbstractDistributeOnceElasticJo
public void doAfterJobExecutedAtLastCompleted(ShardingContexts shardingContexts) {
// do something ...
}
+
+ @Override
+ public String getType() {
+ return "distributeOnceJobListener";
+ }
}
```
+
+## 添加SPI实现
+
+将JobListener实现添加至infra-common下resources/META-INF/services/org.apache.shardingsphere.elasticjob.infra.listener.ElasticJobListener
diff --git a/docs/content/user-manual/elasticjob-lite/usage/job-listener/listener-interface.en.md b/docs/content/user-manual/elasticjob-lite/usage/job-listener/listener-interface.en.md
index 2006fa3..4e3ad42 100644
--- a/docs/content/user-manual/elasticjob-lite/usage/job-listener/listener-interface.en.md
+++ b/docs/content/user-manual/elasticjob-lite/usage/job-listener/listener-interface.en.md
@@ -22,6 +22,11 @@ public class MyJobListener implements ElasticJobListener {
public void afterJobExecuted(ShardingContexts shardingContexts) {
// do something ...
}
+
+ @Override
+ public String getType() {
+ return "simpleJobListener";
+ }
}
```
@@ -47,6 +52,15 @@ public class MyDistributeOnceJobListener extends AbstractDistributeOnceElasticJo
public void doAfterJobExecutedAtLastCompleted(ShardingContexts shardingContexts) {
// do something ...
}
+
+ @Override
+ public String getType() {
+ return "distributeOnceJobListener";
+ }
}
```
+## Add SPI implementation
+
+Put JobListener implementation to module infra-common, resources/META-INF/services/org.apache.shardingsphere.elasticjob.infra.listener.ElasticJobListener
+
diff --git a/docs/content/user-manual/elasticjob-lite/usage/job-listener/spring-namespace.cn.md b/docs/content/user-manual/elasticjob-lite/usage/job-listener/spring-namespace.cn.md
index a43c798..466b5d8 100644
--- a/docs/content/user-manual/elasticjob-lite/usage/job-listener/spring-namespace.cn.md
+++ b/docs/content/user-manual/elasticjob-lite/usage/job-listener/spring-namespace.cn.md
@@ -22,10 +22,7 @@ chapter = true
<!-- 配置作业 Bean -->
<bean id="myJob" class="xxx.MyJob" />
- <elasticjob:job id="${myJob.id}" job-ref="myJob" registry-center-ref="regCenter" sharding-total-count="3" cron="0/1 * * * * ?">
- <!-- 配置作业监听器 -->
- <elasticjob:listener class="xxx.MyJobListener" />
- <elasticjob:distributed-listener class="xxx.MyDistributeOnceJobListener" started-timeout-milliseconds="10000" completed-timeout-milliseconds="20000" />
+ <elasticjob:job id="${myJob.id}" job-ref="myJob" registry-center-ref="regCenter" sharding-total-count="3" cron="0/1 * * * * ?" job-listener-types="simpleJobListener,distributeOnceJobListener">
</elasticjob:job>
</beans>
```
diff --git a/docs/content/user-manual/elasticjob-lite/usage/job-listener/spring-namespace.en.md b/docs/content/user-manual/elasticjob-lite/usage/job-listener/spring-namespace.en.md
index c5f95bd..00ac867 100644
--- a/docs/content/user-manual/elasticjob-lite/usage/job-listener/spring-namespace.en.md
+++ b/docs/content/user-manual/elasticjob-lite/usage/job-listener/spring-namespace.en.md
@@ -22,10 +22,7 @@ chapter = true
<!-- Configuration Job Bean -->
<bean id="myJob" class="xxx.MyJob" />
- <elasticjob:job id="${myJob.id}" job-ref="myJob" registry-center-ref="regCenter" sharding-total-count="3" cron="0/1 * * * * ?">
- <!-- Configure job listener -->
- <elasticjob:listener class="xxx.MyJobListener" />
- <elasticjob:distributed-listener class="xxx.MyDistributeOnceJobListener" started-timeout-milliseconds="10000" completed-timeout-milliseconds="20000" />
+ <elasticjob:job id="${myJob.id}" job-ref="myJob" registry-center-ref="regCenter" sharding-total-count="3" cron="0/1 * * * * ?" job-listener-types="simpleJobListener,distributeOnceJobListener">
</elasticjob:job>
</beans>
```
diff --git a/elasticjob-infra/elasticjob-infra-common/src/main/resources/META-INF/services/org.apache.shardingsphere.elasticjob.infra.listener.ElasticJobListener b/elasticjob-infra/elasticjob-infra-common/src/main/resources/META-INF/services/org.apache.shardingsphere.elasticjob.infra.listener.ElasticJobListener
new file mode 100644
index 0000000..6222972
--- /dev/null
+++ b/elasticjob-infra/elasticjob-infra-common/src/main/resources/META-INF/services/org.apache.shardingsphere.elasticjob.infra.listener.ElasticJobListener
@@ -0,0 +1,17 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
diff --git a/examples/elasticjob-example-lite-spring/src/main/resources/conf/job.properties b/examples/elasticjob-example-lite-spring/src/main/resources/conf/job.properties
index eaec9c5..c600af3 100644
--- a/examples/elasticjob-example-lite-spring/src/main/resources/conf/job.properties
+++ b/examples/elasticjob-example-lite-spring/src/main/resources/conf/job.properties
@@ -20,11 +20,6 @@ event.rdb.url=jdbc:h2:mem:job_event_storage
event.rdb.username=sa
event.rdb.password=
-listener.simple=org.apache.shardingsphere.elasticjob.lite.example.listener.SpringSimpleListener
-listener.distributed=org.apache.shardingsphere.elasticjob.lite.example.listener.SpringSimpleDistributeListener
-listener.distributed.startedTimeoutMilliseconds=1000
-listener.distributed.completedTimeoutMilliseconds=3000
-
simple.id=springSimpleJob
simple.cron=0/5 * * * * ?
simple.shardingTotalCount=3