Skip to content

Commit 542135e

Browse files
committed
修改
1 parent 30f6e19 commit 542135e

File tree

8 files changed

+121
-21
lines changed

8 files changed

+121
-21
lines changed

pom.xml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,6 @@
1919
</properties>
2020

2121
<dependencies>
22-
<dependency>
23-
<groupId>org.springframework.boot</groupId>
24-
<artifactId>spring-boot-starter-webflux</artifactId>
25-
</dependency>
2622
<dependency>
2723
<groupId>org.springframework.boot</groupId>
2824
<artifactId>spring-boot-starter-quartz</artifactId>
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package io.github.toquery.example.quartz;
2+
3+
import lombok.extern.slf4j.Slf4j;
4+
import org.quartz.JobExecutionContext;
5+
import org.quartz.JobExecutionException;
6+
import org.quartz.JobListener;
7+
import org.springframework.stereotype.Service;
8+
9+
@Slf4j
10+
@Service
11+
public class AppJobListener implements JobListener {
12+
13+
@Override
14+
public String getName() {
15+
return "App Listener";
16+
}
17+
18+
@Override
19+
public void jobToBeExecuted(JobExecutionContext context) {
20+
log.info("Job to be executed {}", context.getJobDetail().getKey().getName());
21+
}
22+
23+
@Override
24+
public void jobExecutionVetoed(JobExecutionContext context) {
25+
log.info("Job execution vetoed {}", context.getJobDetail().getKey().getName());
26+
}
27+
28+
@Override
29+
public void jobWasExecuted(JobExecutionContext context, JobExecutionException jobException) {
30+
log.info("Job was executed {} {}", context.getJobDetail().getKey().getName(), (jobException != null ? ", with error" : ""));
31+
}
32+
}

src/main/java/io/github/toquery/example/quartz/ExampleQuartzApplication.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,13 @@
22

33
import org.springframework.boot.SpringApplication;
44
import org.springframework.boot.autoconfigure.SpringBootApplication;
5+
import org.springframework.context.annotation.Bean;
6+
import org.springframework.jdbc.core.JdbcTemplate;
7+
import org.springframework.scheduling.annotation.EnableScheduling;
58

9+
import javax.sql.DataSource;
10+
11+
// @EnableScheduling
612
@SpringBootApplication
713
public class ExampleQuartzApplication {
814

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package io.github.toquery.example.quartz;
2+
3+
import lombok.extern.slf4j.Slf4j;
4+
import org.quartz.DisallowConcurrentExecution;
5+
import org.quartz.Job;
6+
import org.quartz.JobDataMap;
7+
import org.quartz.JobExecutionContext;
8+
import org.quartz.JobExecutionException;
9+
import org.quartz.PersistJobDataAfterExecution;
10+
import org.springframework.scheduling.quartz.QuartzJobBean;
11+
import org.springframework.stereotype.Component;
12+
13+
@Slf4j
14+
//@PersistJobDataAfterExecution
15+
@DisallowConcurrentExecution
16+
@Component
17+
public class JobSpringQuartz extends QuartzJobBean implements Job {
18+
19+
@Override
20+
protected void executeInternal(JobExecutionContext jobExecutionContext) throws JobExecutionException {
21+
log.info(" Job Spring Quartz ");
22+
}
23+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package io.github.toquery.example.quartz;
2+
3+
import org.quartz.DisallowConcurrentExecution;
4+
import org.quartz.Job;
5+
import org.quartz.JobDataMap;
6+
import org.quartz.JobExecutionContext;
7+
import org.quartz.JobExecutionException;
8+
import org.quartz.PersistJobDataAfterExecution;
9+
import org.springframework.stereotype.Component;
10+
11+
@PersistJobDataAfterExecution
12+
@DisallowConcurrentExecution
13+
@Component
14+
public class JobTwo implements Job {
15+
@Override
16+
public void execute(JobExecutionContext context) throws JobExecutionException {
17+
JobDataMap data = context.getTrigger().getJobDataMap();
18+
String invokeParam = (String) data.get("invokeParam");
19+
//在这里实现业务逻辑
20+
}
21+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package io.github.toquery.example.quartz;
2+
3+
import org.quartz.JobDetail;
4+
import org.springframework.beans.factory.annotation.Qualifier;
5+
import org.springframework.context.annotation.Bean;
6+
import org.springframework.context.annotation.Configuration;
7+
import org.springframework.scheduling.quartz.CronTriggerFactoryBean;
8+
import org.springframework.scheduling.quartz.JobDetailFactoryBean;
9+
10+
@Configuration
11+
public class QuartzSchedulerConfig {
12+
13+
@Bean
14+
public CronTriggerFactoryBean job1Trigger(JobDetail jobDetail) {
15+
CronTriggerFactoryBean cronTriggerFactoryBean = new CronTriggerFactoryBean();
16+
cronTriggerFactoryBean.setJobDetail(jobDetail);
17+
cronTriggerFactoryBean.setCronExpression("0/15 * * * * ?");
18+
return cronTriggerFactoryBean;
19+
}
20+
21+
@Bean
22+
public JobDetailFactoryBean job1Detail() {
23+
JobDetailFactoryBean jobDetailFactoryBean = new JobDetailFactoryBean();
24+
jobDetailFactoryBean.setJobClass(JobSpringQuartz.class);
25+
jobDetailFactoryBean.setDurability(true);
26+
return jobDetailFactoryBean;
27+
}
28+
}

src/main/java/io/github/toquery/example/quartz/ScheduledTask.java

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -11,22 +11,12 @@ public class ScheduledTask {
1111

1212

1313
private static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
14-
private Integer count0 = 1;
15-
private Integer count1 = 1;
16-
private Integer count2 = 1;
14+
private Integer count = 1;
1715

18-
@Scheduled(fixedRate = 5000)
19-
public void reportCurrentTime() throws InterruptedException {
20-
System.out.println(String.format("reportCurrentTime第%s次执行,当前时间为:%s", count0++, dateFormat.format(new Date())));
21-
}
2216

23-
@Scheduled(fixedDelay = 5000)
24-
public void reportCurrentTimeAfterSleep() throws InterruptedException {
25-
System.out.println(String.format("reportCurrentTimeAfterSleep第%s次执行,当前时间为:%s", count1++, dateFormat.format(new Date())));
17+
@Scheduled(cron = "0/5 * * * * ?")
18+
public void reportCurrentTime() throws InterruptedException {
19+
System.out.println(String.format(" reportCurrentTime 第 %s 次执行,当前时间为:%s", count++, dateFormat.format(new Date())));
2620
}
2721

28-
@Scheduled(cron = "0 0 1 * * *")
29-
public void reportCurrentTimeCron() throws InterruptedException {
30-
System.out.println(String.format("reportCurrentTimeCron第%s次执行,当前时间为:%s", count2++, dateFormat.format(new Date())));
31-
}
3222
}

src/main/resources/application.yml

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
server:
2+
port: 0
13

24
spring:
35
application:
@@ -25,9 +27,10 @@ spring:
2527
jdbc:
2628
initialize-schema: ALWAYS
2729
scheduler-name: example-quartz
28-
# properties:
29-
# org.quartz.scheduler.instanceName: quartz-demo-app
30-
# org.quartz.scheduler.instanceId: AUTO
30+
properties:
31+
org.quartz.jobStore.isClustered: true
32+
# org.quartz.scheduler.instanceName: quartz-demo-app
33+
org.quartz.scheduler.instanceId: AUTO
3134
# # org.quartz.scheduler.instanceIdGenerator.class: com.helixz.quartz.demo.component.CustomQuartzInstanceIdGenerator
3235
# # 并发数
3336
# org.quartz.threadPool.threadCount: 20
@@ -52,3 +55,4 @@ spring:
5255
#============================================================================# 配置ThreadPool#============================================================================# 线程池的实现类(一般使用SimpleThreadPool即可满足几乎所有用户的需求)org.quartz.threadPool.class=org.quartz.simpl.SimpleThreadPool
5356
# 指定线程数,一般设置为1-100直接的整数,根据系统资源配置org.quartz.threadPool.threadCount = 5
5457
# 设置线程的优先级(可以是Thread.MIN_PRIORITY(即1)和Thread.MAX_PRIORITY(这是10)之间的任何int 。默认值为Thread.NORM_PRIORITY(5)。)org.quartz.threadPool.threadPriority = 5
58+

0 commit comments

Comments
 (0)