Quartz 定时任务

工作中遇到需求,需要从数据库中取到执行时间,执行定时任务发送文件。网上搜了搜,大多数都是5秒钟。 干脆查一查API,简单测试留个笔记。

导入pom.xml 依赖

<dependency>
	<groupId>org.quartz-scheduler</groupId>
    <artifactId>quartz</artifactId>
    <version>2.2.1</version>
</dependency>
<dependency>
  	<groupId>org.quartz-scheduler</groupId>
	<artifactId>quartz-jobs</artifactId>
	<version>2.2.1</version>
</dependency>

Job代码(可换为自己要执行的程序)

import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class QuartzJob implements Job{
	//重写的Job中的方法
	public void execute() throws JobExecutionException{
	
	Date date = new Date();
	
	SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");

	String currentDate = format.format(date);

	System.out.println("开始Job定时任务 "+ currentDate );
	}
}

调度器代码

import org.quartz.*;
import org.quartz.impl.StdSchedulerFactory;

public class QuartzSch{

	public static void main(String[] args){

		String time = "6";

		new QuartzSch().quartzTest(time);
		
	}

	public void quartzTest(String time){
		//创建调度器
		Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();

		//创建job,对job添加描述
		JobDetail jobDetail = JobBuilder.newJob(QuartzJob .class).withIdentity("job1","group1").build();
		//创建触发器
		//把间隔当做参数传入表达式
		Trigger trigger = TriggerBuilder.newTrigger().withIdentity("simpleTrigger","simpleTriggerGroup").startNow().
		withSchedule(CronScheduleBuilder.cronSchedule("0/" + time + " * * * * ?")).build();
		//在调度器中 绑定job和触发器
		scheduler.scheduleJob(jobDetail,trigger );

		scheduler.start();
		
}catch(SchedulerException e){

		e.printStackTrace();

	}

}

运行结果(time 为 6)
传入的time为 6
大家可以按自己需求自行配置,仅供参考。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值