一、使用quartz
1.由于我的项目jar包使用的maven托管的,在pom文件中加入quartz的依赖就可以
2.配置quartz-context.xml,确保xml文件能被加载到
work
10,15,20,25,30,35,40,45,50,55 * * * * ?
二、使用spring @Scheduled注解的方式
1.这两个是一定要写的,加入task的命名空间
2.编写实现类
package com.jsrush.common.web;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@Component
public class QuartzJob {
@Scheduled(cron = "0,10,20,30,40,50 * * * * ? ")
public void work()
{
SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String date=sdf.format(new Date());
System.out.println(date+"---执行Quartz的任务调度!!!");
// System.out.println(date+"---执行@Scheduled的任务调度!!!");
}
}
这样就已经完成了
相对来说,@Scheduled适用与监听任务较少的,而Quartz适合较多的,为确保可伸缩性,Quartz采用了基于多线程的架构。启动时,框架初始化一套worker线程,这套线程被调度器用来执行预定的作业。这就是Quartz怎样能并发运行多个作业的原理。Quartz依赖一套松耦合的线程池管理部件来管理线程环境。
总之来说用哪个还是看自己的业务需求