This is an automated email from the ASF dual-hosted git repository.
wuweijie 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 601277e support spring module timeZone (#1957)
601277e is described below
commit 601277eb0f5448f8d201e43ab1e5b2919561afca
Author: skai <[email protected]>
AuthorDate: Tue Aug 10 13:51:38 2021 +0800
support spring module timeZone (#1957)
Co-authored-by: 蔡顺铠 <[email protected]>
---
.../user-manual/elasticjob-lite/configuration/_index.cn.md | 11 ++++++-----
.../user-manual/elasticjob-lite/configuration/_index.en.md | 1 +
.../user-manual/elasticjob-lite/configuration/java-api.cn.md | 1 +
.../user-manual/elasticjob-lite/configuration/java-api.en.md | 1 +
.../elasticjob-lite/configuration/spring-boot-starter.cn.md | 3 +++
.../elasticjob-lite/configuration/spring-boot-starter.en.md | 3 +++
.../elasticjob-lite/configuration/spring-namespace.cn.md | 1 +
.../elasticjob-lite/configuration/spring-namespace.en.md | 1 +
.../spring/boot/job/ElasticJobConfigurationProperties.java | 4 +++-
.../boot/job/ElasticJobConfigurationPropertiesTest.java | 2 ++
.../src/test/resources/application-elasticjob.yml | 1 +
.../spring/namespace/job/parser/JobBeanDefinitionParser.java | 3 +--
.../lite/spring/namespace/job/tag/JobBeanDefinitionTag.java | 2 ++
.../src/main/resources/META-INF/namespace/elasticjob.xsd | 1 +
14 files changed, 27 insertions(+), 8 deletions(-)
diff --git
a/docs/content/user-manual/elasticjob-lite/configuration/_index.cn.md
b/docs/content/user-manual/elasticjob-lite/configuration/_index.cn.md
index 364a783..a330eee 100644
--- a/docs/content/user-manual/elasticjob-lite/configuration/_index.cn.md
+++ b/docs/content/user-manual/elasticjob-lite/configuration/_index.cn.md
@@ -42,19 +42,20 @@ ElasticJob-Lite 提供了 3 种配置方式,用于不同的使用场景。
| jobName | String | | 作业名称
|
| shardingTotalCount | int | | 作业分片总数
|
| cron | String | | CRON
表达式,用于控制作业触发时间 |
+| timeZone | String | | CRON 的时区设置
|
| shardingItemParameters | String | | 个性化分片参数
|
| jobParameter | String | | 作业自定义参数
|
| monitorExecution | boolean | true | 监控作业运行时状态
|
| failover | boolean | false | 是否开启任务执行失效转移
|
| misfire | boolean | true | 是否开启错过任务重新执行
|
-| maxTimeDiffSeconds | int | -1(不检查) |
最大允许的本机与注册中心的时间误差秒数 |
-| reconcileIntervalMinutes | int | 10 |
修复作业服务器不一致状态服务调度间隔分钟 |
+| maxTimeDiffSeconds | int | -1(不检查) |
最大允许的本机与注册中心的时间误差秒数 |
+| reconcileIntervalMinutes | int | 10 |
修复作业服务器不一致状态服务调度间隔分钟 |
| jobShardingStrategyType | String | AVG_ALLOCATION | 作业分片策略类型
|
| jobExecutorServiceHandlerType | String | CPU | 作业线程池处理策略
|
| jobErrorHandlerType | String | | 作业错误处理策略
|
-| description | String | | 作业描述信息
|
-| props | Properties | | 作业属性配置信息
|
-| disabled | boolean | false | 作业是否禁止启动
|
+| description | String | | 作业描述信息
|
+| props | Properties | | 作业属性配置信息
|
+| disabled | boolean | false | 作业是否禁止启动
|
| overwrite | boolean | false |
本地配置是否可覆盖注册中心配置 |
### 核心配置项说明
diff --git
a/docs/content/user-manual/elasticjob-lite/configuration/_index.en.md
b/docs/content/user-manual/elasticjob-lite/configuration/_index.en.md
index ae5ba39..195e4e6 100644
--- a/docs/content/user-manual/elasticjob-lite/configuration/_index.en.md
+++ b/docs/content/user-manual/elasticjob-lite/configuration/_index.en.md
@@ -41,6 +41,7 @@ Include IP and port, multiple addresses are separated by
commas, such as: `host1
| jobName | String | | Job
name
|
| shardingTotalCount | int | |
Sharding total count
|
| cron | String | |
CRON expression, control the job trigger time
|
+| timeZone | String | |
time zone of CRON
|
| shardingItemParameters | String | |
Sharding item parameters
|
| jobParameter | String | | Job
parameter
|
| monitorExecution | boolean | true |
Monitor job execution status
|
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 2bb2478..02c3d2b 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
@@ -34,6 +34,7 @@ chapter = true
| jobName | 是 |
| shardingTotalCount | 是 |
| cron | 否 |
+| timeZone | 否 |
| shardingItemParameters | 否 |
| jobParameter | 否 |
| monitorExecution | 否 |
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 74ea1e0..3670e0b 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
@@ -34,6 +34,7 @@ Configuration:
| jobName | Yes |
| shardingTotalCount | Yes |
| cron | No |
+| timeZone | No |
| shardingItemParameters | No |
| jobParameter | No |
| monitorExecution | No |
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 7f25c02..b40b79b 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
@@ -47,6 +47,7 @@ elasticjob.reg-center.server-lists=localhost:6181
| --------------------------------- |:-------- |
| elasticJobClass / elasticJobType | 是 |
| cron | 否 |
+| timeZone | 否 |
| jobBootstrapBeanName | 否 |
| sharding-total-count | 是 |
| sharding-item-parameters | 否 |
@@ -80,6 +81,7 @@ elasticjob:
simpleJob:
elasticJobClass:
org.apache.shardingsphere.elasticjob.lite.example.job.SpringBootSimpleJob
cron: 0/5 * * * * ?
+ timeZone: GMT+08:00
shardingTotalCount: 3
shardingItemParameters: 0=Beijing,1=Shanghai,2=Guangzhou
scriptJob:
@@ -100,6 +102,7 @@ elasticjob:
```
elasticjob.jobs.simpleJob.elastic-job-class=org.apache.shardingsphere.elasticjob.lite.example.job.SpringBootSimpleJob
elasticjob.jobs.simpleJob.cron=0/5 * * * * ?
+elasticjob.jobs.simpleJob.timeZone=GMT+08:00
elasticjob.jobs.simpleJob.sharding-total-count=3
elasticjob.jobs.simpleJob.sharding-item-parameters=0=Beijing,1=Shanghai,2=Guangzhou
elasticjob.jobs.scriptJob.elastic-job-type=SCRIPT
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 2852abd..e87764b 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
@@ -47,6 +47,7 @@ Configuration:
| --------------------------------- |:-------- |
| elasticJobClass / elasticJobType | Yes |
| cron | No |
+| timeZone | No |
| jobBootstrapBeanName | No |
| sharding-total-count | Yes |
| sharding-item-parameters | No |
@@ -81,6 +82,7 @@ elasticjob:
simpleJob:
elasticJobClass:
org.apache.shardingsphere.elasticjob.lite.example.job.SpringBootSimpleJob
cron: 0/5 * * * * ?
+ timeZone: GMT+08:00
shardingTotalCount: 3
shardingItemParameters: 0=Beijing,1=Shanghai,2=Guangzhou
scriptJob:
@@ -101,6 +103,7 @@ elasticjob:
```
elasticjob.jobs.simpleJob.elastic-job-class=org.apache.shardingsphere.elasticjob.lite.example.job.SpringBootSimpleJob
elasticjob.jobs.simpleJob.cron=0/5 * * * * ?
+elasticjob.jobs.simpleJob.timeZone=GMT+08:00
elasticjob.jobs.simpleJob.sharding-total-count=3
elasticjob.jobs.simpleJob.sharding-item-parameters=0=Beijing,1=Shanghai,2=Guangzhou
elasticjob.jobs.scriptJob.elastic-job-type=SCRIPT
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 bb117f0..a1cf12c 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
@@ -48,6 +48,7 @@ chapter = true
| registry-center-ref | 是 |
| tracing-ref | 否 |
| cron | 是 |
+| timeZone | 否 |
| sharding-total-count | 是 |
| sharding-item-parameters | 否 |
| job-parameter | 否 |
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 3b92310..34301a2 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
@@ -48,6 +48,7 @@ Configuration:
| registry-center-ref | Yes |
| tracing-ref | No |
| cron | Yes |
+| timeZone | No |
| sharding-total-count | Yes |
| sharding-item-parameters | No |
| job-parameter | No |
diff --git
a/elasticjob-lite/elasticjob-lite-spring/elasticjob-lite-spring-boot-starter/src/main/java/org/apache/shardingsphere/elasticjob/lite/spring/boot/job/ElasticJobConfigurationProperties.java
b/elasticjob-lite/elasticjob-lite-spring/elasticjob-lite-spring-boot-starter/src/main/java/org/apache/shardingsphere/elasticjob/lite/spring/boot/job/ElasticJobConfigurationProperties.java
index d172fba..102c443 100644
---
a/elasticjob-lite/elasticjob-lite-spring/elasticjob-lite-spring-boot-starter/src/main/java/org/apache/shardingsphere/elasticjob/lite/spring/boot/job/ElasticJobConfigurationProperties.java
+++
b/elasticjob-lite/elasticjob-lite-spring/elasticjob-lite-spring-boot-starter/src/main/java/org/apache/shardingsphere/elasticjob/lite/spring/boot/job/ElasticJobConfigurationProperties.java
@@ -39,6 +39,8 @@ public final class ElasticJobConfigurationProperties {
private String cron;
+ private String timeZone;
+
private String jobBootstrapBeanName;
private int shardingTotalCount;
@@ -81,7 +83,7 @@ public final class ElasticJobConfigurationProperties {
*/
public JobConfiguration toJobConfiguration(final String jobName) {
JobConfiguration result = JobConfiguration.newBuilder(jobName,
shardingTotalCount)
-
.cron(cron).shardingItemParameters(shardingItemParameters).jobParameter(jobParameter)
+
.cron(cron).timeZone(timeZone).shardingItemParameters(shardingItemParameters).jobParameter(jobParameter)
.monitorExecution(monitorExecution).failover(failover).misfire(misfire)
.maxTimeDiffSeconds(maxTimeDiffSeconds).reconcileIntervalMinutes(reconcileIntervalMinutes)
.jobShardingStrategyType(jobShardingStrategyType).jobExecutorServiceHandlerType(jobExecutorServiceHandlerType).jobErrorHandlerType(jobErrorHandlerType)
diff --git
a/elasticjob-lite/elasticjob-lite-spring/elasticjob-lite-spring-boot-starter/src/test/java/org/apache/shardingsphere/elasticjob/lite/spring/boot/job/ElasticJobConfigurationPropertiesTest.java
b/elasticjob-lite/elasticjob-lite-spring/elasticjob-lite-spring-boot-starter/src/test/java/org/apache/shardingsphere/elasticjob/lite/spring/boot/job/ElasticJobConfigurationPropertiesTest.java
index 5fb9740..52f78a8 100644
---
a/elasticjob-lite/elasticjob-lite-spring/elasticjob-lite-spring-boot-starter/src/test/java/org/apache/shardingsphere/elasticjob/lite/spring/boot/job/ElasticJobConfigurationPropertiesTest.java
+++
b/elasticjob-lite/elasticjob-lite-spring/elasticjob-lite-spring-boot-starter/src/test/java/org/apache/shardingsphere/elasticjob/lite/spring/boot/job/ElasticJobConfigurationPropertiesTest.java
@@ -33,6 +33,7 @@ public final class ElasticJobConfigurationPropertiesTest {
properties.setElasticJobClass(ElasticJob.class);
properties.setElasticJobType("jobType");
properties.setCron("cron");
+ properties.setTimeZone("timeZone");
properties.setJobBootstrapBeanName("beanName");
properties.setShardingTotalCount(3);
properties.setShardingItemParameters("a=1,b=2");
@@ -54,6 +55,7 @@ public final class ElasticJobConfigurationPropertiesTest {
assertThat(actual.getJobName(), is("testJob"));
assertThat(actual.getShardingTotalCount(),
is(properties.getShardingTotalCount()));
assertThat(actual.getCron(), is(properties.getCron()));
+ assertThat(actual.getTimeZone(), is(properties.getTimeZone()));
assertThat(actual.getShardingItemParameters(),
is(properties.getShardingItemParameters()));
assertThat(actual.getJobParameter(), is(properties.getJobParameter()));
assertThat(actual.getMaxTimeDiffSeconds(),
is(properties.getMaxTimeDiffSeconds()));
diff --git
a/elasticjob-lite/elasticjob-lite-spring/elasticjob-lite-spring-boot-starter/src/test/resources/application-elasticjob.yml
b/elasticjob-lite/elasticjob-lite-spring/elasticjob-lite-spring-boot-starter/src/test/resources/application-elasticjob.yml
index e90702f..1e7ec2b 100644
---
a/elasticjob-lite/elasticjob-lite-spring/elasticjob-lite-spring-boot-starter/src/test/resources/application-elasticjob.yml
+++
b/elasticjob-lite/elasticjob-lite-spring/elasticjob-lite-spring-boot-starter/src/test/resources/application-elasticjob.yml
@@ -44,6 +44,7 @@ elasticjob:
print.content: "test print job"
defaultBeanNameClassJob:
cron: 0/5 * * * * ?
+ timeZome: GMT+08:00
elasticJobClass:
org.apache.shardingsphere.elasticjob.lite.spring.boot.job.fixture.job.impl.CustomTestJob
shardingTotalCount: 3
defaultBeanNameTypeJob:
diff --git
a/elasticjob-lite/elasticjob-lite-spring/elasticjob-lite-spring-namespace/src/main/java/org/apache/shardingsphere/elasticjob/lite/spring/namespace/job/parser/JobBeanDefinitionParser.java
b/elasticjob-lite/elasticjob-lite-spring/elasticjob-lite-spring-namespace/src/main/java/org/apache/shardingsphere/elasticjob/lite/spring/namespace/job/parser/JobBeanDefinitionParser.java
index 87166e7..001543b 100644
---
a/elasticjob-lite/elasticjob-lite-spring/elasticjob-lite-spring-namespace/src/main/java/org/apache/shardingsphere/elasticjob/lite/spring/namespace/job/parser/JobBeanDefinitionParser.java
+++
b/elasticjob-lite/elasticjob-lite-spring/elasticjob-lite-spring-namespace/src/main/java/org/apache/shardingsphere/elasticjob/lite/spring/namespace/job/parser/JobBeanDefinitionParser.java
@@ -66,8 +66,7 @@ public final class JobBeanDefinitionParser extends
AbstractBeanDefinitionParser
BeanDefinitionBuilder result =
BeanDefinitionBuilder.rootBeanDefinition(JobConfiguration.class);
result.addConstructorArgValue(element.getAttribute(ID_ATTRIBUTE));
result.addConstructorArgValue(element.getAttribute(JobBeanDefinitionTag.CRON_ATTRIBUTE));
- //TODO Need support the timeZone
- result.addConstructorArgValue(null);
+
result.addConstructorArgValue(element.getAttribute(JobBeanDefinitionTag.TIME_ZONE_ATTRIBUTE));
result.addConstructorArgValue(element.getAttribute(JobBeanDefinitionTag.SHARDING_TOTAL_COUNT_ATTRIBUTE));
result.addConstructorArgValue(element.getAttribute(JobBeanDefinitionTag.SHARDING_ITEM_PARAMETERS_ATTRIBUTE));
result.addConstructorArgValue(element.getAttribute(JobBeanDefinitionTag.JOB_PARAMETER_ATTRIBUTE));
diff --git
a/elasticjob-lite/elasticjob-lite-spring/elasticjob-lite-spring-namespace/src/main/java/org/apache/shardingsphere/elasticjob/lite/spring/namespace/job/tag/JobBeanDefinitionTag.java
b/elasticjob-lite/elasticjob-lite-spring/elasticjob-lite-spring-namespace/src/main/java/org/apache/shardingsphere/elasticjob/lite/spring/namespace/job/tag/JobBeanDefinitionTag.java
index 617dde5..3f0852b 100644
---
a/elasticjob-lite/elasticjob-lite-spring/elasticjob-lite-spring-namespace/src/main/java/org/apache/shardingsphere/elasticjob/lite/spring/namespace/job/tag/JobBeanDefinitionTag.java
+++
b/elasticjob-lite/elasticjob-lite-spring/elasticjob-lite-spring-namespace/src/main/java/org/apache/shardingsphere/elasticjob/lite/spring/namespace/job/tag/JobBeanDefinitionTag.java
@@ -36,6 +36,8 @@ public final class JobBeanDefinitionTag {
public static final String CRON_ATTRIBUTE = "cron";
+ public static final String TIME_ZONE_ATTRIBUTE = "time-zone";
+
public static final String SHARDING_TOTAL_COUNT_ATTRIBUTE =
"sharding-total-count";
public static final String SHARDING_ITEM_PARAMETERS_ATTRIBUTE =
"sharding-item-parameters";
diff --git
a/elasticjob-lite/elasticjob-lite-spring/elasticjob-lite-spring-namespace/src/main/resources/META-INF/namespace/elasticjob.xsd
b/elasticjob-lite/elasticjob-lite-spring/elasticjob-lite-spring-namespace/src/main/resources/META-INF/namespace/elasticjob.xsd
index 372da0f..ef91aba 100644
---
a/elasticjob-lite/elasticjob-lite-spring/elasticjob-lite-spring-namespace/src/main/resources/META-INF/namespace/elasticjob.xsd
+++
b/elasticjob-lite/elasticjob-lite-spring/elasticjob-lite-spring-namespace/src/main/resources/META-INF/namespace/elasticjob.xsd
@@ -35,6 +35,7 @@
<xsd:attribute name="registry-center-ref"
type="xsd:string" use="required" />
<xsd:attribute name="sharding-total-count"
type="xsd:string" use="required" />
<xsd:attribute name="cron" type="xsd:string" />
+ <xsd:attribute name="time-zone" type="xsd:string" />
<xsd:attribute name="sharding-item-parameters"
type="xsd:string" />
<xsd:attribute name="job-parameter" type="xsd:string" />
<xsd:attribute name="monitor-execution" type="xsd:string"
default="true" />