最简单的定时任务 单线程 受上一个定时任务的影响 只需要一个注解皆可以执行
package com.tj.controller;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableScheduling;
//单独定时任务 单线程受上一个定时任务的影响
import org.springframework.scheduling.annotation.Scheduled;
@Configuration
@EnableScheduling
public class Schedu {
int i = 0;
@Scheduled(fixedRate = 2000)
public void run() throws InterruptedException {
if(i == 1) {
System.out.println("好" + data());
i=0;
}else {
System.out.println("你" + data());
i++;
}
}
public String data() {
SimpleDateFormat sml = new SimpleDateFormat("yyyy.MM.dd hh:mm:ss");
Date date = new Date();
String format = sml.format(date);
return format;
}
}
springboot 简单的调用quartz 进行定时任务
导入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-quartz</artifactId>
</dependency>
定制任务1
package com.tj.controller;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.scheduling.quartz.QuartzJobBean;
public class TestJob1 extends QuartzJobBean {
@Override
protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
// TODO Auto-generated method stub
System.out.println("hello job" + context.getJobDetail().getKey() + data());
}
public String data() {
SimpleDateFormat sml = new SimpleDateFormat("yyyy.MM.dd hh:mm:ss");
Date date = new Date();
String format = sml.format(date);
return format;
}
}
定制任务2
package com.tj.controller;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.scheduling.quartz.QuartzJobBean;
public class TestJob2 extends QuartzJobBean {
@Override
protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
// TODO Auto-generated method stub
System.out.println("hello job2" + context.getJobDetail().getKey() + data());
}
public String data() {
SimpleDateFormat sml = new SimpleDateFormat("yyyy.MM.dd hh:mm:ss");
Date date = new Date();
String format = sml.format(date);
return format;
}
}
建立调度器
package com.tj.controller;
import org.quartz.CronScheduleBuilder;
import org.quartz.JobBuilder;
import org.quartz.JobDetail;
import org.quartz.Trigger;
import org.quartz.TriggerBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class JobManage {
@Bean
public JobDetail myJobDetail1() {
JobDetail jobDetail = JobBuilder.newJob(TestJob1.class)
.withIdentity("myjob1") //任务名称
.storeDurably().build();
return jobDetail;
}
@Bean
public JobDetail myJobDetail2() {
JobDetail jobDetail = JobBuilder.newJob(TestJob2.class)
.withIdentity("myjob23")
.storeDurably().build();
return jobDetail;
}
@Bean
public Trigger MyTrigger2() {
CronScheduleBuilder cronSchedule = CronScheduleBuilder.cronSchedule("0/3 * * * * ? ");
Trigger trigger = TriggerBuilder.newTrigger()
.forJob(myJobDetail2())
.withIdentity("myjob23")
.withSchedule(cronSchedule)
.build();
return trigger;
}
@Bean
public Trigger MyTrigger() {
CronScheduleBuilder cronSchedule = CronScheduleBuilder.cronSchedule("0/5 * * * * ? ");
Trigger trigger = TriggerBuilder.newTrigger()
.forJob(myJobDetail1())
.withIdentity("myjob1")
.withSchedule(cronSchedule)
.build();
return trigger;
}
}
运行效果展示