Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
amos-boot-biz
Project
Project
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
项目统一框架
amos-boot-biz
Commits
b40f7bc7
Commit
b40f7bc7
authored
Jun 14, 2024
by
张森
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
quartz持久化到数据库
parent
cf9b11aa
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
81 additions
and
54 deletions
+81
-54
pom.xml
.../amos-boot-module-biz/amos-boot-module-patrol-biz/pom.xml
+2
-2
JobService.java
.../main/java/com/yeejoin/amos/patrol/quartz/JobService.java
+9
-5
MsgJobService.java
...in/java/com/yeejoin/amos/patrol/quartz/MsgJobService.java
+9
-6
PlanTaskJobService.java
...va/com/yeejoin/amos/patrol/quartz/PlanTaskJobService.java
+7
-5
QuartzManager.java
...in/java/com/yeejoin/amos/patrol/quartz/QuartzManager.java
+38
-29
TaskJobService.java
...n/java/com/yeejoin/amos/patrol/quartz/TaskJobService.java
+8
-5
application-dev.properties
...stem-patrol/src/main/resources/application-dev.properties
+8
-2
No files found.
amos-boot-module/amos-boot-module-biz/amos-boot-module-patrol-biz/pom.xml
View file @
b40f7bc7
...
...
@@ -44,8 +44,8 @@
<version>
1.2.15
</version>
</dependency>
<dependency>
<groupId>
org.
quartz-scheduler
</groupId>
<artifactId>
quartz
</artifactId>
<groupId>
org.
springframework.boot
</groupId>
<artifactId>
spring-boot-starter-
quartz
</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/com.google.zxing/core -->
<dependency>
...
...
amos-boot-module/amos-boot-module-biz/amos-boot-module-patrol-biz/src/main/java/com/yeejoin/amos/patrol/quartz/JobService.java
View file @
b40f7bc7
...
...
@@ -104,15 +104,19 @@ public class JobService implements IJobService {
@Autowired
private
RedisUtils
redisUtils
;
@Autowired
private
QuartzManager
quartzManager
;
@Override
@Transactional
public
void
initScheduler
()
{
// TODO Auto-generated method stub
log
.
debug
(
"======================initScheduler==========================="
);
initTaskJob
();
initPlanTaskJob
();
initMsgJob
();
// 已持久化到数据库,所以不需要这儿初始化
// initTaskJob();
// initPlanTaskJob();
// initMsgJob();
}
@Override
...
...
@@ -122,7 +126,7 @@ public class JobService implements IJobService {
SimpleDateFormat
formatter
=
new
SimpleDateFormat
(
"ss mm HH dd MM ? yyyy"
);
String
cronDate
=
formatter
.
format
(
time
);
log
.
debug
(
"addJob==jobName=="
+
jobName
);
Q
uartzManager
.
addJob
(
jobName
,
jobType
,
id
,
getJobInstance
(
name
).
getClass
(),
cronDate
);
q
uartzManager
.
addJob
(
jobName
,
jobType
,
id
,
getJobInstance
(
name
).
getClass
(),
cronDate
);
}
}
...
...
@@ -630,7 +634,7 @@ public class JobService implements IJobService {
// }
private
void
removeJob
(
String
jobName
)
{
log
.
debug
(
"removeJob==jobName=="
+
jobName
);
Q
uartzManager
.
removeJob
(
jobName
);
// q
uartzManager.removeJob(jobName);
}
private
Job
getJobInstance
(
String
type
)
{
...
...
amos-boot-module/amos-boot-module-biz/amos-boot-module-patrol-biz/src/main/java/com/yeejoin/amos/patrol/quartz/MsgJobService.java
View file @
b40f7bc7
...
...
@@ -4,24 +4,27 @@ import org.quartz.Job;
import
org.quartz.JobDataMap
;
import
org.quartz.JobExecutionContext
;
import
org.quartz.JobExecutionException
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
@Component
public
class
MsgJobService
implements
Job
{
private
IJobService
jobService
;
@Autowired
private
JobService
jobService
;
@Override
public
void
execute
(
JobExecutionContext
context
)
throws
JobExecutionException
{
JobDataMap
jobDataMap
=
context
.
getJobDetail
().
getJobDataMap
();
setJobService
((
IJobService
)
jobDataMap
.
get
(
"jobService"
));
jobService
.
msgJobPerform
(
Long
.
valueOf
(
jobDataMap
.
get
(
"id"
).
toString
()),
jobDataMap
.
get
(
"jobType"
).
toString
(),
jobDataMap
.
get
(
"jobName"
).
toString
());
}
public
I
JobService
getJobService
()
{
public
JobService
getJobService
()
{
return
jobService
;
}
public
void
setJobService
(
I
JobService
jobService
)
{
public
void
setJobService
(
JobService
jobService
)
{
this
.
jobService
=
jobService
;
}
}
amos-boot-module/amos-boot-module-biz/amos-boot-module-patrol-biz/src/main/java/com/yeejoin/amos/patrol/quartz/PlanTaskJobService.java
View file @
b40f7bc7
...
...
@@ -4,24 +4,26 @@ import org.quartz.Job;
import
org.quartz.JobDataMap
;
import
org.quartz.JobExecutionContext
;
import
org.quartz.JobExecutionException
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
@Component
public
class
PlanTaskJobService
implements
Job
{
private
IJobService
jobService
;
@Autowired
private
JobService
jobService
;
@Override
public
void
execute
(
JobExecutionContext
context
)
throws
JobExecutionException
{
JobDataMap
jobDataMap
=
context
.
getJobDetail
().
getJobDataMap
();
setJobService
((
IJobService
)
jobDataMap
.
get
(
"jobService"
));
jobService
.
planTaskJobPerform
(
Long
.
valueOf
(
jobDataMap
.
get
(
"id"
).
toString
()),
jobDataMap
.
get
(
"jobType"
).
toString
(),
jobDataMap
.
get
(
"jobName"
).
toString
());
}
public
IJobService
getJobService
()
{
return
jobService
;
}
public
void
setJobService
(
I
JobService
jobService
)
{
public
void
setJobService
(
JobService
jobService
)
{
this
.
jobService
=
jobService
;
}
...
...
amos-boot-module/amos-boot-module-biz/amos-boot-module-patrol-biz/src/main/java/com/yeejoin/amos/patrol/quartz/QuartzManager.java
View file @
b40f7bc7
...
...
@@ -16,40 +16,48 @@ import org.quartz.TriggerKey;
import
org.quartz.impl.StdSchedulerFactory
;
import
com.yeejoin.amos.patrol.business.util.SpringContextUtil
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
@Component
public
class
QuartzManager
{
private
static
SchedulerFactory
gSchedulerFactory
=
new
StdSchedulerFactory
();
//创建一个SchedulerFactory工厂实例
private
static
String
JOB_GROUP_NAME
=
"FH_JOBGROUP_NAME"
;
//任务组
private
static
String
TRIGGER_GROUP_NAME
=
"FH_TRIGGERGROUP_NAME"
;
//触发器组
@Autowired
private
Scheduler
scheduler
;
/**添加一个定时任务,使用默认的任务组名,触发器名,触发器组名
* @param jobName 任务名
* @param cls 任务
* @param time 时间设置,参考quartz说明文档
*/
public
static
void
addJob
(
String
jobName
,
String
jobType
,
long
id
,
Class
<?
extends
Job
>
cls
,
String
time
)
{
try
{
Scheduler
sched
=
gSchedulerFactory
.
getScheduler
();
public
void
addJob
(
String
jobName
,
String
jobType
,
long
id
,
Class
<?
extends
Job
>
cls
,
String
time
)
{
try
{
JobDataMap
jobDataMap
=
new
JobDataMap
();
jobDataMap
.
put
(
"jobName"
,
jobName
);
jobDataMap
.
put
(
"id"
,
id
);
jobDataMap
.
put
(
"jobType"
,
jobType
);
jobDataMap
.
put
(
"jobService"
,
SpringContextUtil
.
getJobService
());
JobDetail
jobDetail
=
JobBuilder
.
newJob
(
cls
).
setJobData
(
jobDataMap
).
withIdentity
(
jobName
,
JOB_GROUP_NAME
).
build
();
//用于描叙Job实现类及其他的一些静态信息,构建一个作业实例
CronTrigger
trigger
=
(
CronTrigger
)
TriggerBuilder
.
newTrigger
()
//创建一个新的TriggerBuilder来规范一个触发器
.
withIdentity
(
jobName
,
TRIGGER_GROUP_NAME
)
//给触发器起一个名字和组名
jobDataMap
.
put
(
"jobName"
,
jobName
);
jobDataMap
.
put
(
"id"
,
id
);
jobDataMap
.
put
(
"jobType"
,
jobType
);
//用于描叙Job实现类及其他的一些静态信息,构建一个作业实例
JobDetail
jobDetail
=
JobBuilder
.
newJob
(
cls
)
.
setJobData
(
jobDataMap
)
.
withIdentity
(
jobName
,
JOB_GROUP_NAME
)
.
build
();
//创建一个新的TriggerBuilder来规范一个触发器
CronTrigger
trigger
=
TriggerBuilder
.
newTrigger
()
.
withIdentity
(
jobName
,
TRIGGER_GROUP_NAME
)
.
usingJobData
(
jobDataMap
)
.
startNow
()
.
withSchedule
(
CronScheduleBuilder
.
cronSchedule
(
time
))
.
build
();
sched
.
scheduleJob
(
jobDetail
,
trigger
);
if
(!
sched
.
isShutdown
())
{
sched
.
start
();
// 启动
}
}
catch
(
Exception
e
)
{
throw
new
RuntimeException
(
e
);
}
scheduler
.
scheduleJob
(
jobDetail
,
trigger
);
}
catch
(
Exception
e
)
{
throw
new
RuntimeException
(
e
);
}
}
/**添加一个定时任务,使用默认的任务组名,触发器名,触发器组名 (带参数)
...
...
@@ -187,17 +195,18 @@ public class QuartzManager {
/**移除一个任务(使用默认的任务组名,触发器名,触发器组名)
* @param jobName 任务名称
*/
public
static
void
removeJob
(
String
jobName
)
{
try
{
Scheduler
sched
=
gSchedulerFactory
.
getScheduler
();
public
static
void
removeJob
(
String
jobName
)
{
try
{
// 获取Scheduler
Scheduler
scheduler
=
StdSchedulerFactory
.
getDefaultScheduler
();
TriggerKey
triggerKey
=
TriggerKey
.
triggerKey
(
jobName
,
TRIGGER_GROUP_NAME
);
//通过触发器名和组名获取TriggerKey
JobKey
jobKey
=
JobKey
.
jobKey
(
jobName
,
JOB_GROUP_NAME
);
//通过任务名和组名获取JobKey
sched
.
pauseTrigger
(
triggerKey
);
// 停止触发器
sched
.
unscheduleJob
(
triggerKey
);
// 移除触发器
sched
.
deleteJob
(
jobKey
);
// 删除任务
}
catch
(
Exception
e
)
{
throw
new
RuntimeException
(
e
);
}
sched
uler
.
pauseTrigger
(
triggerKey
);
// 停止触发器
sched
uler
.
unscheduleJob
(
triggerKey
);
// 移除触发器
sched
uler
.
deleteJob
(
jobKey
);
// 删除任务
}
catch
(
Exception
e
)
{
throw
new
RuntimeException
(
e
);
}
}
/**移除一个任务
...
...
amos-boot-module/amos-boot-module-biz/amos-boot-module-patrol-biz/src/main/java/com/yeejoin/amos/patrol/quartz/TaskJobService.java
View file @
b40f7bc7
...
...
@@ -4,25 +4,28 @@ import org.quartz.Job;
import
org.quartz.JobDataMap
;
import
org.quartz.JobExecutionContext
;
import
org.quartz.JobExecutionException
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
@Component
public
class
TaskJobService
implements
Job
{
private
IJobService
jobService
;
@Autowired
private
JobService
jobService
;
@Override
public
void
execute
(
JobExecutionContext
context
)
throws
JobExecutionException
{
JobDataMap
jobDataMap
=
context
.
getJobDetail
().
getJobDataMap
();
setJobService
((
IJobService
)
jobDataMap
.
get
(
"jobService"
));
jobService
.
taskJobPerform
(
Long
.
valueOf
(
jobDataMap
.
get
(
"id"
).
toString
()),
jobDataMap
.
get
(
"jobType"
).
toString
(),
jobDataMap
.
get
(
"jobName"
).
toString
());
}
public
I
JobService
getJobService
()
{
public
JobService
getJobService
()
{
return
jobService
;
}
public
void
setJobService
(
I
JobService
jobService
)
{
public
void
setJobService
(
JobService
jobService
)
{
this
.
jobService
=
jobService
;
}
}
amos-boot-system-patrol/src/main/resources/application-dev.properties
View file @
b40f7bc7
...
...
@@ -133,4 +133,10 @@ emqx.max-inflight=1000
emqx.keep-alive-interval
=
10
file.url
=
http://39.98.45.134:9000/
\ No newline at end of file
file.url
=
http://39.98.45.134:9000/
# 是设置每次启动项目是否重建表结构,并且清空里面的数据,有三个选项可以选择always,never,embedded
spring.quartz.job-store-type
=
jdbc
spring.quartz.jdbc.initialize-schema
=
never
spring.quartz.scheduler-name
=
testScheduler
\ No newline at end of file
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