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和性能提升
1372 3
|
5月前
|
设计模式 Java uml
01.面向对象设计思想
本内容系统讲解面向对象设计思想,涵盖从面向过程到面向对象的演变、面向对象的核心理念、编程实践、与面向过程的对比分析等。通过案例解析,帮助理解类与对象、封装、继承、多态等关键概念,提升代码的可维护性与扩展性。同时结合设计模式与UML建模工具,深入探讨面向对象分析与设计的方法与应用场景。适合希望掌握面向对象编程思想、提升软件设计能力的开发者学习与参考。
182 0
|
存储 Java API
LDAP:轻量级目录访问协议
LDAP:轻量级目录访问协议
470 0
|
机器学习/深度学习 人工智能 弹性计算
阿里云GPU服务器全解析_GPU价格收费标准_GPU优势和使用说明
阿里云GPU云服务器提供强大的GPU算力,适用于深度学习、科学计算、图形可视化和视频处理等场景。作为亚太领先的云服务商,阿里云GPU云服务器具备高灵活性、易用性、容灾备份、安全性和成本效益,支持多种实例规格,满足不同业务需求。
3085 2
|
XML 安全 Java
Spring Boot 怎么接入 Stripe 支付?
本文介绍了如何在 Spring Boot 应用中接入 Stripe 支付,提供了一个基本框架,并展示了处理 Webhook 的代码示例。通过捕获异常返回错误信息,成功处理事件则返回确认消息。作者 JustinNeil 在文中还提到可根据需求扩展更多功能,如订阅管理和优惠券应用等。
684 0
|
数据库
什么是接口幂等性?如何保证接口幂等性?
接口幂等性(Idempotency)是指同样的请求被重复执行多次,产生的结果与执行一次的结果相同。换句话说,接口无论被调用一次还是多次,系统的最终状态保持不变。
2163 5
|
网络协议 安全 网络安全
图解OSI七层模型,2024最强科普!
【7月更文挑战第20天】
3820 2
图解OSI七层模型,2024最强科普!
|
存储 缓存 Java
Java中的延时队列(Delay Queue)
Java中的延时队列(Delay Queue)
665 3
Java- IO 及其相关面试题(上)
Java- IO 及其相关面试题(上)
469 0
|
存储 NoSQL MongoDB
MongoDB实战面试指南:常见问题一网打尽
MongoDB实战面试指南:常见问题一网打尽