Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
D
datax-cloud
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
黄营
datax-cloud
Commits
0c60e535
Commit
0c60e535
authored
May 14, 2020
by
yuwei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
2.0.0项目初始化
parent
89a06fa6
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
155 additions
and
76 deletions
+155
-76
datax-service-quartz-dev.yml
...ig/src/main/resources/config/datax-service-quartz-dev.yml
+41
-54
QrtzJobLogEntity.java
.../cn/datax/service/quartz/api/entity/QrtzJobLogEntity.java
+24
-5
pom.xml
datax-modules/quartz-service-parent/quartz-service/pom.xml
+7
-1
QuartzConfig.java
...ain/java/cn/datax/service/quartz/config/QuartzConfig.java
+44
-7
QrtzJobController.java
...cn/datax/service/quartz/controller/QrtzJobController.java
+39
-0
ScheduleJob.java
...main/java/cn/datax/service/quartz/quartz/ScheduleJob.java
+0
-1
QrtzJobLogMapper.xml
...tz-service/src/main/resources/mapper/QrtzJobLogMapper.xml
+0
-8
No files found.
datax-config/src/main/resources/config/datax-service-quartz-dev.yml
View file @
0c60e535
...
...
@@ -2,49 +2,51 @@
spring
:
redis
:
database
:
1
host
:
1
27.0.0.
1
host
:
1
92.168.234.10
1
port
:
6379
password
:
# 密码(默认为空)
timeout
:
6000ms
# 连接超时时长(毫秒)
password
:
1234@abcd
# 密码(默认为空)
timeout
:
6000ms
# 连接超时时长(毫秒)
lettuce
:
pool
:
max-active
:
1000
# 连接池最大连接数(使用负值表示没有限制)
max-wait
:
-1ms
# 连接池最大阻塞等待时间(使用负值表示没有限制)
max-wait
:
-1ms
# 连接池最大阻塞等待时间(使用负值表示没有限制)
max-idle
:
10
# 连接池中的最大空闲连接
min-idle
:
5
# 连接池中的最小空闲连接
datasource
:
dynamic
:
type
:
com.zaxxer.hikari.HikariDataSource
hikari
:
auto-commit
:
false
connection-timeout
:
30000
idle-timeout
:
25000
login-timeout
:
5
max-lifetime
:
30000
read-only
:
false
validation-timeout
:
3000
maximum-pool-size
:
15
minimum-idle
:
5
pool-name
:
DataxHikariCP
connection-test-query
:
SELECT 1 FROM DUAL
data-source-properties
:
cachePrepStmts
:
true
prepStmtCacheSize
:
250
prepStmtCacheSqlLimit
:
2048
useServerPrepStmts
:
true
useLocalSessionState
:
true
rewriteBatchedStatements
:
true
cacheResultSetMetadata
:
true
cacheServerConfiguration
:
true
elideSetAutoCommits
:
true
maintainTimeStats
:
false
primary
:
mysql
datasource
:
mysql
:
driver-class-name
:
com.p6spy.engine.spy.P6SpyDriver
url
:
jdbc:p6spy:mysql://127.0.0.1:3306/data_cloud?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username
:
root
password
:
1234@abcd
datasource
:
mysql
:
driver-class-name
:
com.p6spy.engine.spy.P6SpyDriver
url
:
jdbc:p6spy:mysql://192.168.234.100:3306/data_cloud?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username
:
root
password
:
1234@abcd
quartz
:
driver-class-name
:
com.mysql.cj.jdbc.Driver
url
:
jdbc:mysql://192.168.234.100:3306/data_cloud_quartz?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username
:
root
password
:
1234@abcd
type
:
com.zaxxer.hikari.HikariDataSource
hikari
:
auto-commit
:
false
connection-timeout
:
30000
idle-timeout
:
25000
login-timeout
:
5
max-lifetime
:
30000
read-only
:
false
validation-timeout
:
3000
maximum-pool-size
:
15
minimum-idle
:
5
pool-name
:
DataxHikariCP
connection-test-query
:
SELECT 1 FROM DUAL
data-source-properties
:
cachePrepStmts
:
true
prepStmtCacheSize
:
250
prepStmtCacheSqlLimit
:
2048
useServerPrepStmts
:
true
useLocalSessionState
:
true
rewriteBatchedStatements
:
true
cacheResultSetMetadata
:
true
cacheServerConfiguration
:
true
elideSetAutoCommits
:
true
maintainTimeStats
:
false
quartz
:
job-store-type
:
jdbc
# Job 存储器类型。默认为 memory 表示内存,可选 jdbc 使用数据库。
auto-startup
:
true
# Quartz 是否自动启动
...
...
@@ -56,14 +58,6 @@ spring:
properties
:
org
:
quartz
:
datasource
:
quartzDataSource
:
# 新版驱动从com.mysql.jdbc.Driver变更为com.mysql.cj.jdbc.Driver
driver-class-name
:
com.mysql.cj.jdbc.Driver
# 数据源需要添加时间标准和指定编码格式解决乱码 You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.
url
:
jdbc:mysql://127.0.0.1:3306/data_cloud_quartz?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username
:
root
password
:
1234@abcd
scheduler
:
instancName
:
clusteredScheduler
instanceId
:
AUTO
...
...
@@ -105,11 +99,4 @@ security:
scope
:
all
resource
:
loadBalanced
:
true
token-info-uri
:
http://localhost:8612/auth/oauth/check_token
datasource
:
scheduler
:
url
:
jdbc:mysql://127.0.0.1:3306/data_cloud_quartz?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username
:
root
password
:
1234@abcd
driver-class-name
:
com.mysql.cj.jdbc.Driver
\ No newline at end of file
token-info-uri
:
http://localhost:8612/auth/oauth/check_token
\ No newline at end of file
datax-modules/quartz-service-parent/quartz-service-api/src/main/java/cn/datax/service/quartz/api/entity/QrtzJobLogEntity.java
View file @
0c60e535
package
cn
.
datax
.
service
.
quartz
.
api
.
entity
;
import
c
n.datax.common.base.DataScopeBaseEntity
;
import
com.
baomidou.mybatisplus.annotation.TableName
;
import
c
om.baomidou.mybatisplus.annotation.*
;
import
com.
fasterxml.jackson.annotation.JsonFormat
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
/**
* <p>
* 定时任务日志信息表
...
...
@@ -15,14 +17,19 @@ import lombok.experimental.Accessors;
* @since 2020-05-14
*/
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@Accessors
(
chain
=
true
)
@TableName
(
"qrtz_job_log"
)
public
class
QrtzJobLogEntity
extends
DataScopeBaseEntity
{
public
class
QrtzJobLogEntity
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
/**
* 主键
*/
@TableId
(
value
=
"id"
,
type
=
IdType
.
ASSIGN_ID
)
private
String
id
;
/**
* 任务ID
*/
private
String
jobId
;
...
...
@@ -31,4 +38,16 @@ public class QrtzJobLogEntity extends DataScopeBaseEntity {
* 信息记录
*/
private
String
msg
;
/**
* 状态(0不启用,1启用)
*/
private
Integer
status
;
/**
* 创建时间
*/
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
@TableField
(
value
=
"create_time"
)
private
LocalDateTime
createTime
;
}
datax-modules/quartz-service-parent/quartz-service/pom.xml
View file @
0c60e535
...
...
@@ -8,7 +8,7 @@
<version>
2.0.0
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
<version>
2.0.0
</version>
<artifactId>
quartz-service
</artifactId>
<dependencies>
...
...
@@ -53,6 +53,12 @@
<groupId>
cn.datax
</groupId>
<artifactId>
datax-common-mybatis
</artifactId>
<version>
2.0.0
</version>
<exclusions>
<exclusion>
<groupId>
com.baomidou
</groupId>
<artifactId>
dynamic-datasource-spring-boot-starter
</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>
cn.datax
</groupId>
...
...
datax-modules/quartz-service-parent/quartz-service/src/main/java/cn/datax/service/quartz/config/QuartzConfig.java
View file @
0c60e535
...
...
@@ -8,9 +8,9 @@ import org.springframework.beans.factory.config.AutowireCapableBeanFactory;
import
org.springframework.boot.autoconfigure.jdbc.DataSourceProperties
;
import
org.springframework.boot.autoconfigure.quartz.QuartzDataSource
;
import
org.springframework.boot.context.properties.ConfigurationProperties
;
import
org.springframework.boot.jdbc.DataSourceBuilder
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.context.annotation.Primary
;
import
org.springframework.scheduling.quartz.AdaptableJobFactory
;
import
org.springframework.scheduling.quartz.SchedulerFactoryBean
;
import
org.springframework.stereotype.Component
;
...
...
@@ -20,19 +20,55 @@ import javax.sql.DataSource;
@Configuration
public
class
QuartzConfig
{
/**
* 创建 mysql 数据源的配置对象
*/
@Primary
@Bean
(
name
=
"mysqlDataSourceProperties"
)
@ConfigurationProperties
(
prefix
=
"spring.datasource.mysql"
)
// 读取 spring.datasource.mysql 配置到 DataSourceProperties 对象
public
DataSourceProperties
mysqlDataSourceProperties
()
{
return
new
DataSourceProperties
();
}
/**
* 创建 mysql 数据源
*/
@Primary
@Bean
(
name
=
"mysqlDataSource"
)
@ConfigurationProperties
(
prefix
=
"spring.datasource.mysql.hikari"
)
// 读取 spring.datasource.mysql 配置到 HikariDataSource 对象
public
DataSource
userDataSource
()
{
// 获得 DataSourceProperties 对象
DataSourceProperties
properties
=
this
.
mysqlDataSourceProperties
();
// 创建 HikariDataSource 对象
return
createHikariDataSource
(
properties
);
}
/**
* 创建 quartz 数据源的配置对象
*/
@Bean
(
name
=
"quartzDataSourceProperties"
)
@ConfigurationProperties
(
prefix
=
"
datasource.scheduler"
)
@ConfigurationProperties
(
prefix
=
"
spring.datasource.quartz"
)
// 读取 spring.datasource.quartz 配置到 DataSourceProperties 对象
public
DataSourceProperties
quartzDataSourceProperties
()
{
return
new
DataSourceProperties
();
}
/**
* 创建 quartz 数据源
*/
@Bean
(
name
=
"quartzDataSource"
)
@ConfigurationProperties
(
prefix
=
"spring.datasource.quartz.hikari"
)
@QuartzDataSource
@ConfigurationProperties
(
prefix
=
"datasource.scheduler"
)
public
DataSource
quartzDataSource
(){
DataSource
datasource
=
quartzDataSourceProperties
().
initializeDataSourceBuilder
()
.
type
(
HikariDataSource
.
class
).
build
();
return
datasource
;
public
DataSource
quartzDataSource
()
{
// 获得 DataSourceProperties 对象
DataSourceProperties
properties
=
this
.
quartzDataSourceProperties
();
// 创建 HikariDataSource 对象
return
createHikariDataSource
(
properties
);
}
private
static
HikariDataSource
createHikariDataSource
(
DataSourceProperties
properties
)
{
// 创建 HikariDataSource 对象
HikariDataSource
dataSource
=
properties
.
initializeDataSourceBuilder
().
type
(
HikariDataSource
.
class
).
build
();
return
dataSource
;
}
/**
...
...
@@ -70,6 +106,7 @@ public class QuartzConfig {
public
Scheduler
scheduler
(
QuartzJobFactory
quartzJobFactory
)
throws
Exception
{
SchedulerFactoryBean
factoryBean
=
new
SchedulerFactoryBean
();
factoryBean
.
setJobFactory
(
quartzJobFactory
);
factoryBean
.
setDataSource
(
quartzDataSource
());
factoryBean
.
afterPropertiesSet
();
Scheduler
scheduler
=
factoryBean
.
getScheduler
();
scheduler
.
start
();
...
...
datax-modules/quartz-service-parent/quartz-service/src/main/java/cn/datax/service/quartz/controller/QrtzJobController.java
View file @
0c60e535
...
...
@@ -118,4 +118,43 @@ public class QrtzJobController extends BaseController {
qrtzJobService
.
deleteQrtzJobById
(
id
);
return
R
.
ok
();
}
/**
* 暂停任务
* @param id
* @return
*/
@ApiOperation
(
value
=
"暂停任务"
,
notes
=
"根据url的id来暂停指定任务"
)
@ApiImplicitParam
(
name
=
"id"
,
value
=
"ID"
,
required
=
true
,
dataType
=
"String"
,
paramType
=
"path"
)
@PostMapping
(
"/pause/{id}"
)
public
R
pauseById
(
@PathVariable
(
"id"
)
String
id
)
{
qrtzJobService
.
pauseById
(
id
);
return
R
.
ok
();
}
/**
* 恢复任务
* @param id
* @return
*/
@ApiOperation
(
value
=
"恢复任务"
,
notes
=
"根据url的id来恢复指定任务"
)
@ApiImplicitParam
(
name
=
"id"
,
value
=
"ID"
,
required
=
true
,
dataType
=
"String"
,
paramType
=
"path"
)
@PostMapping
(
"/resume/{id}"
)
public
R
resumeById
(
@PathVariable
(
"id"
)
String
id
)
{
qrtzJobService
.
resumeById
(
id
);
return
R
.
ok
();
}
/**
* 立即执行任务
* @param id
* @return
*/
@ApiOperation
(
value
=
"立即执行任务"
,
notes
=
"根据url的id来立即执行指定任务"
)
@ApiImplicitParam
(
name
=
"id"
,
value
=
"ID"
,
required
=
true
,
dataType
=
"String"
,
paramType
=
"path"
)
@PostMapping
(
"/run/{id}"
)
public
R
runById
(
@PathVariable
(
"id"
)
String
id
)
{
qrtzJobService
.
runById
(
id
);
return
R
.
ok
();
}
}
datax-modules/quartz-service-parent/quartz-service/src/main/java/cn/datax/service/quartz/quartz/ScheduleJob.java
View file @
0c60e535
...
...
@@ -27,7 +27,6 @@ public class ScheduleJob extends QuartzJobBean {
protected
void
executeInternal
(
JobExecutionContext
context
)
{
QrtzJobEntity
job
=
(
QrtzJobEntity
)
context
.
getMergedJobDataMap
().
get
(
ScheduleUtil
.
JOB_DATA_MAP
);
log
.
info
(
"运行任务{}"
,
job
);
// QrtzJobLogService qrtzJobLogService = SpringContextHolder.getBean(QrtzJobLogService.class);
QrtzJobLogEntity
jobLog
=
new
QrtzJobLogEntity
();
jobLog
.
setJobId
(
job
.
getId
());
jobLog
.
setCreateTime
(
LocalDateTime
.
now
());
...
...
datax-modules/quartz-service-parent/quartz-service/src/main/resources/mapper/QrtzJobLogMapper.xml
View file @
0c60e535
...
...
@@ -6,11 +6,7 @@
<resultMap
id=
"BaseResultMap"
type=
"cn.datax.service.quartz.api.entity.QrtzJobLogEntity"
>
<result
column=
"id"
property=
"id"
/>
<result
column=
"status"
property=
"status"
/>
<result
column=
"create_by"
property=
"createBy"
/>
<result
column=
"create_time"
property=
"createTime"
/>
<result
column=
"create_dept"
property=
"createDept"
/>
<result
column=
"update_by"
property=
"updateBy"
/>
<result
column=
"update_time"
property=
"updateTime"
/>
<result
column=
"job_id"
property=
"jobId"
/>
<result
column=
"msg"
property=
"msg"
/>
</resultMap>
...
...
@@ -19,11 +15,7 @@
<sql
id=
"Base_Column_List"
>
id,
status,
create_by,
create_time,
create_dept,
update_by,
update_time,
job_id, msg
</sql>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment