Quartz - 入门案例

简介: Quartz - 入门案例
// pom.xml<dependency><groupId>org.quartz-scheduler</groupId><artifactId>quartz</artifactId><version>2.2.3</version></dependency>
packagecom.imooc.demo.HelloQuartz;
importjava.text.SimpleDateFormat;
importjava.util.Date;
importorg.quartz.Job;
importorg.quartz.JobExecutionContext;
importorg.quartz.JobExecutionException;
publicclassHelloJobimplementsJob {
publicvoidexecute(JobExecutionContextcontext)
throwsJobExecutionException {
try {
Thread.sleep(5000L);
        } catch (InterruptedExceptione) {
e.printStackTrace();
        }
// 打印当前的执行时间,格式为2017-01-01 00:00:00Datedate=newDate();
SimpleDateFormatsf=newSimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println("Current Exec Time Is : "+sf.format(date));
System.out.println("Hello World");
    }
}
packagecom.imooc.demo.HelloQuartz;
importjava.text.SimpleDateFormat;
importjava.util.Date;
importorg.quartz.CronScheduleBuilder;
importorg.quartz.CronTrigger;
importorg.quartz.JobBuilder;
importorg.quartz.JobDetail;
importorg.quartz.Scheduler;
importorg.quartz.SchedulerException;
importorg.quartz.SchedulerFactory;
importorg.quartz.TriggerBuilder;
importorg.quartz.impl.StdSchedulerFactory;
publicclassHelloScheduler {
publicstaticvoidmain(String[] args) throwsSchedulerException, InterruptedException {
// 打印当前的时间,格式为2017-01-01 00:00:00Datedate=newDate();
SimpleDateFormatsf=newSimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println("Current Time Is : "+sf.format(date));
// 创建一个JobDetail实例,将该实例与HelloJob Class绑定JobDetailjobDetail=JobBuilder.newJob(HelloJob.class)
                .withIdentity("myJob").build();
CronTriggertrigger= (CronTrigger) TriggerBuilder                .newTrigger()
                .withIdentity("myTrigger", "group1")
                .withSchedule(
CronScheduleBuilder.cronSchedule("* * * * * ?"))
                .build();
// 创建Scheduler实例SchedulerFactorysfact=newStdSchedulerFactory();
Schedulerscheduler=sfact.getScheduler();
scheduler.start();
System.out.println("scheduled time is :"+sf.format(scheduler.scheduleJob(jobDetail, trigger)));
//scheduler执行两秒后挂起Thread.sleep(2000L);        
//shutdown(true)表示等待所有正在执行的job执行完毕之后,再关闭scheduler//shutdown(false)即shutdown()表示直接关闭schedulerscheduler.shutdown(false);
System.out.println("scheduler is shut down? "+scheduler.isShutdown());
    }
}
目录
相关文章
|
安全 JavaScript 前端开发
JDK1.8的重要的新特性与功能
Java Development Kit (JDK) 1.8,也称为Java 8,是Java平台的一个重大更新,于2014年3月发布。它引入了多项新特性、新的API和性能提升
1282 3
|
存储 Java API
LDAP:轻量级目录访问协议
LDAP:轻量级目录访问协议
429 0
|
机器学习/深度学习 人工智能 弹性计算
阿里云GPU服务器全解析_GPU价格收费标准_GPU优势和使用说明
阿里云GPU云服务器提供强大的GPU算力,适用于深度学习、科学计算、图形可视化和视频处理等场景。作为亚太领先的云服务商,阿里云GPU云服务器具备高灵活性、易用性、容灾备份、安全性和成本效益,支持多种实例规格,满足不同业务需求。
2813 2
|
11月前
|
XML 安全 Java
Spring Boot 怎么接入 Stripe 支付?
本文介绍了如何在 Spring Boot 应用中接入 Stripe 支付,提供了一个基本框架,并展示了处理 Webhook 的代码示例。通过捕获异常返回错误信息,成功处理事件则返回确认消息。作者 JustinNeil 在文中还提到可根据需求扩展更多功能,如订阅管理和优惠券应用等。
574 0
|
网络协议 安全 网络安全
图解OSI七层模型,2024最强科普!
【7月更文挑战第20天】
3411 2
图解OSI七层模型,2024最强科普!
|
监控 NoSQL Redis
Redis Sentinel的高可用性详解
Redis Sentinel的高可用性详解
387 0
【Simulink】电池双向DC/DC+PI双环直流母线稳压
【Simulink】电池双向DC/DC+PI双环直流母线稳压
|
存储 缓存 Java
Java中的延时队列(Delay Queue)
Java中的延时队列(Delay Queue)
608 3
|
存储 NoSQL MongoDB
MongoDB实战面试指南:常见问题一网打尽
MongoDB实战面试指南:常见问题一网打尽
|
前端开发 JavaScript API
【前端】Vue3知识点合集
【前端】Vue3知识点合集
270 0
【前端】Vue3知识点合集