SpringBoot定时任务---------学习第六天

              愿你我共同成长!

今天的定时任务有两种 :
1.Schedudel定时任务器

2.Quartz定时任务

一,  Schedudel定时任务器(Scheduled 定时任务器:是 Spring3.0 以后自带的一个定时任务器。,没什么好多说的,直接上代码 )

首先引入依赖

<!-- 添加 Scheduled 坐标 -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context-support</artifactId>
		</dependency>

写一个定时任务测试用例

/**
*@Component  注解是声明这个类是会什么的作用
*/
@Component
public class ScheduledDemo {
//这里是设置时间,具体怎么设置可以百度,我就不多说了,很简单
    @Scheduled(cron="0/2 * * * * ?")
	public void ScheduledMethod() {
		System.out.println("定时任务!"+new Date());
		
	}
}

写一个启动类

@SpringBootApplication
@EnableScheduling             //这个注解是开启定时器的,千万记住
public class App {

	public static void main(String[] args) {
		SpringApplication.run(App.class, args);
	}

}

现在在启动类里直接启动,其他 什么都不用操作,看结果 (因为时间设置每两秒执行一次,所以结果就是这样了)

2019-02-12 16:14:19.936  INFO 8864 --- [  restartedMain] o.s.j.e.a.AnnotationMBeanExporter        : Bean with name 'dataSource' has been autodetected for JMX exposure
2019-02-12 16:14:19.945  INFO 8864 --- [  restartedMain] o.s.j.e.a.AnnotationMBeanExporter        : Located MBean 'dataSource': registering with JMX server as MBean [com.alibaba.druid.pool:name=dataSource,type=DruidDataSource]
2019-02-12 16:14:19.965  INFO 8864 --- [  restartedMain] s.a.ScheduledAnnotationBeanPostProcessor : No TaskScheduler/ScheduledExecutorService bean found for scheduled processing
定时任务!Tue Feb 12 16:14:20 CST 2019
2019-02-12 16:14:20.133  INFO 8864 --- [  restartedMain] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http)
2019-02-12 16:14:20.160  INFO 8864 --- [  restartedMain] com.itstone.App                          : Started App in 9.668 seconds (JVM running for 10.725)
定时任务!Tue Feb 12 16:14:22 CST 2019
定时任务!Tue Feb 12 16:14:24 CST 2019
定时任务!Tue Feb 12 16:14:26 CST 2019
定时任务!Tue Feb 12 16:14:28 CST 2019
定时任务!Tue Feb 12 16:14:30 CST 2019
定时任务!Tue Feb 12 16:14:32 CST 2019
定时任务!Tue Feb 12 16:14:34 CST 2019
定时任务!Tue Feb 12 16:14:36 CST 2019
定时任务!Tue Feb 12 16:14:38 CST 2019

成功!!!!!

二,Quartz定时任务(这里直接写springboot整合后的定时任务了

首先添加quartz依赖

<!-- Quartz 坐标 -->
		<dependency>
			<groupId>org.quartz-scheduler</groupId>
			<artifactId>quartz</artifactId>
			<version>2.2.1</version>
			<exclusions>
				<exclusion>
					<artifactId>slf4j-api</artifactId>
					<groupId>org.slf4j</groupId>
				</exclusion>
			</exclusions>
		</dependency>

写一个自己的job出来

//实现job接口
public class QuartzDemo implements Job {

	@Override
	public void execute(JobExecutionContext context) throws JobExecutionException {
		System.out.println("定时任务哟哟哟哟哟哟" + new Date());
	}

}

定时任务配置类(注意各个注解不能少)

@Configuration
public class QuartzConfig {
	/**
	 * 1.创建job对象 做什么事
	 */
	@Bean
	public JobDetailFactoryBean getJobDetailFactoryBean() {
		JobDetailFactoryBean factory = new JobDetailFactoryBean();
		// 关联自己的job类
		factory.setJobClass(QuartzDemo.class);
		return factory;

	}

	/**
	 * 2.创建trigger对象
	 */
	@Bean
	public SimpleTriggerFactoryBean getSimpleTriggerFactoryBean(JobDetailFactoryBean jobDetailFactoryBean) {
		SimpleTriggerFactoryBean factory = new SimpleTriggerFactoryBean();
		// 关联jobdatil对象
		factory.setJobDetail(jobDetailFactoryBean.getObject());
		// 该参数表示一个执行的毫秒数
		factory.setRepeatInterval(2000);
		// 重复次数
		factory.setRepeatCount(5);
		return factory;
	}

	/**
	 * 3.创建scheduler对象
	 */
	@Bean
	public SchedulerFactoryBean getSchedulerFactoryBean(SimpleTriggerFactoryBean simpleTriggerFactoryBean) {
		SchedulerFactoryBean factory = new SchedulerFactoryBean();
		// 关联trigger
		factory.setTriggers(simpleTriggerFactoryBean.getObject());
		return factory;
	}
}

创建启动类

@SpringBootApplication
@EnableScheduling
public class App {

	public static void main(String[] args) {
		SpringApplication.run(App.class, args);
	}

}

点击右键启动,看结果

定时任务哟哟哟哟哟哟Tue Feb 12 17:07:52 CST 2019
定时任务哟哟哟哟哟哟Tue Feb 12 17:07:52 CST 2019
定时任务哟哟哟哟哟哟Tue Feb 12 17:07:52 CST 2019
2019-02-12 17:07:53.103  INFO 13536 --- [  restartedMain] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http)
2019-02-12 17:07:53.119  INFO 13536 --- [  restartedMain] com.itstone.App                          : Started App in 12.268 seconds (JVM running for 13.2)
定时任务哟哟哟哟哟哟Tue Feb 12 17:07:54 CST 2019
定时任务哟哟哟哟哟哟Tue Feb 12 17:07:56 CST 2019
定时任务哟哟哟哟哟哟Tue Feb 12 17:07:58 CST 2019

搞定  ,结束   !

时间怎么设置可以自行百度,很简单!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值