第一回 Quartz之入门

本文通过实战演示如何使用Quartz替代Timer实现更高效稳定的定时任务调度。介绍了TestJob与TestScheduler两个核心类的实现,展示了如何配置JobDetail与Trigger,并通过示例代码解释了Quartz在高并发场景下的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当Timer不能解决问题了,这时我们就得撸Quartz了

第一个Quartz程序

在项目开发时,当做完一段业务代码后,以为基本可以收工了,这时回头再看,由于某些业务中的数据具有时效性,在指定时间时我们得进行相应的操作。这时首先我们可以使用Timer来做定时,但是Timer是串行,遇到多并发
的时候它就显得蛋疼了,由此我们引入了Quartz来干活咯!

干活前先做个小的测试

1.TestJob.java

public class TestJob implements Job {

    @Override
    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
        Date date=new Date();
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        System.out.println("TestJob 当前时间为:"+sdf.format(date));
        //
        System.out.println("todo:此处执行具体业务逻辑");

    }
}

2.TestScheduler.java


public class TestScheduler {
    public static void main(String[] args) throws SchedulerException {
        //创建JobDetail实例 ,与TestJob绑定
        JobDetail jobDetail = JobBuilder.newJob(TestJob.class).withIdentity("test-job", "test-group").build();
        //创建Trigger实例,定义该job立即执行
        Trigger trigger = TriggerBuilder.newTrigger().withIdentity("test-trigger", "test-group").
                startNow().withSchedule(SimpleScheduleBuilder.
                simpleSchedule().withIntervalInSeconds(2).repeatForever())
                .build();
        //创建Scheduler实例
        SchedulerFactory factory=new StdSchedulerFactory();
        Scheduler scheduler=factory.getScheduler();
        scheduler.start();

        Date date=new Date();
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        System.out.println("TestScheduler - 当前时间为:"+sdf.format(date));

        scheduler.scheduleJob(jobDetail,trigger);


    }

执行结果

TestScheduler - 当前时间为:2019-03-07 10:37:52
TestJob 当前时间为:2019-03-07 10:37:52
todo:此处执行具体业务逻辑
TestJob 当前时间为:2019-03-07 10:37:54
todo:此处执行具体业务逻辑
TestJob 当前时间为:2019-03-07 10:37:56
todo:此处执行具体业务逻辑
TestJob 当前时间为:2019-03-07 10:37:58
todo:此处执行具体业务逻辑
TestJob 当前时间为:2019-03-07 10:38:00
todo:此处执行具体业务逻辑
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

盒曰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值