Quartz是一个大名鼎鼎的Java版开源定时调度器,功能强悍,使用方便。

如下是写的一个样例程序,定时输出 hello world:

package timeutil;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
public class MyJob implements Job { public void execute(JobExecutionContext arg0) throws JobExecutionException { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS"); System.out.println("当前时间为:"+sdf.format(new Date())); System.out.println("hello world");} } 
package timeutil;
import static org.quartz.CronScheduleBuilder.cronSchedule;
import static org.quartz.JobBuilder.newJob;
import static org.quartz.TriggerBuilder.newTrigger;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.quartz.CronTrigger;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerFactory;
import org.quartz.impl.StdSchedulerFactory; public class TimeUpdate { public void go() throws Exception { // 首先,必需要取得一个Scheduler的引用 SchedulerFactory sf = new StdSchedulerFactory(); Scheduler sched = sf.getScheduler(); //jobs可以在scheduled的sched.start()方法前被调用 //job 1将每隔20秒执行一次 JobDetail job = newJob(MyJob.class).withIdentity("job1", "group1").build(); CronTrigger trigger = newTrigger().withIdentity("trigger1", "group1").withSchedule(cronSchedule("0/20 * * * * ?")).build(); Date ft = sched.scheduleJob(job, trigger); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS"); System.out.println(job.getKey() + " 已被安排执行于: " + sdf.format(ft) + ",并且以如下重复规则重复执行: " + trigger.getCronExpression()); sched.start(); } public static void main(String[] args) throws Exception { TimeUpdate test = new TimeUpdate(); test.go(); } } /*
-------------------------------------- 0 0 12 * * ?            每天12点触发 0 15 10 ? * *           每天10点15分触发 0 15 10 * * ?           每天10点15分触发 0 15 10 * * ? *         每天10点15分触发 0 15 10 * * ? 2005      2005年每天10点15分触发 0 * 14 * * ?            每天下午的 2点到2点59分每分触发 0 0/5 14 * * ?          每天下午的 2点到2点59分(整点开始,每隔5分触发) 0 0/5 14,18 * * ?       每天下午的 2点到2点59分(整点开始,每隔5分触发) 每天下午的 18点到18点59分(整点开始,每隔5分触发) 0 0-5 14 * * ?          每天下午的 2点到2点05分每分触发 0 10,44 14 ? 3 WED      3月分每周三下午的 2点10分和2点44分触发 0 15 10 ? * MON-FRI     从周一到周五每天上午的10点15分触发 0 15 10 15 * ?          每月15号上午10点15分触发 0 15 10 L * ?           每月最后一天的10点15分触发 0 15 10 ? * 6L          每月最后一周的星期五的10点15分触发 0 15 10 ? * 6L 2002-2005    从2002年到2005年每月最后一周的星期五的10点15分触发 0 15 10 ? * 6#3         每月的第三周的星期五开始触发 0 0 12 1/5 * ?          每月的第一个中午开始每隔5天触发一次 0 11 11 11 11 ?         每年的11月11号 11点11分触发(光棍节)
-------------------------------------- */  

在线Cron 表达式生成器地址为:http://www.pdtools.net/tools/becron.jsp
运行结果如下图所示:

Quartz实线定期运行程序(Java)相关推荐

  1. mac上java文件如何编译_如何在Mac上用Java编译和运行程序?

    小编典典 在Mac OSX或任何主要操作系统上编译和运行Java应用程序非常容易.Apple随OSX一起提供了一个功能齐全的Java运行时和开发环境,因此您要做的就是编写Java程序并使用内置工具来编 ...

  2. java8多线程运行程序_线程,代码和数据–多线程Java程序实际运行的方式

    java8多线程运行程序 有些事情是您在学术或培训班上没有学到的,经过几年的工作经验后才逐渐了解,然后才意识到,这是非常基本的事情,我为什么错过了这么多年. 了解多线程Java程序的执行方式就是其中之 ...

  3. 在java中使用quartz_如何在Java中使用Quartz Scheduler框架运行cron作业?

    我在Java中使用Quartz Scheduler来运行cron作业 . 这是我第一次使用这个框架来运行cron作业,所以我有些困惑 . 我正在关注这个tutorial以更好地理解如何使用Quartz ...

  4. java——获取一个应用程序运行的次数,如果超过5次,给出使用次数已到请注册的提示,并不要再运行程序

    获取一个应用程序运行的次数,如果超过5次,给出使用次数已到请注册的提示,并不要再运行程序 import java.io.File; import java.io.FileInputStream; im ...

  5. Quartz+log4net实现控制台程序定时运行,并且记录日志

    c# 控制台程序定时运行,并记录日志. 组件Quartz + log4net Quartz定时运行程序,log4net记录日志. 首先建立控制台程序"QuartzTest" 安装Q ...

  6. cmd无法运行python_通过Java-%1在cmd中运行python文件不是有效的Win32应用程序 - java...

    我正在尝试使用Java执行python代码.我的代码: public class PyTest { public static void main(String[] args) { Runtime.g ...

  7. linux中启动 java -jar 后台运行程序

    ps -ef | grep java  查询java 端口占用 linux中启动 java -jar 后台运行程序 直接用java -jar xxx.jar,当退出或关闭shell时,程序就会停止掉. ...

  8. java应用程序如何编译运作_开发Java应用程序的基本步骤是: 1 编写源文件, 2.编译源文件, 3.运行程序。_学小易找答案...

    [判断题]Java源文件中只能有一个类. [简答题]任务32:开关电源PCB 设计.docx [多选题]企业的收入具体表现为一定期间: [简答题]任务33:CPLD逻辑电路自制元件与封装.docx [ ...

  9. java命令行编译命令_Java使用命令行编译运行程序

    一.摘要 使用javac命令来编译java文件生成.class文件 使用java命令+类名来运行编译好的class文件 二.编译不含包名的程序 假设HelloJava.java代码文件如下 Java ...

最新文章

  1. Docker虚拟化解析
  2. 索尼因需量大增而增加PSVR产量
  3. redis入门demo
  4. c++读取utf8文件_经常在日常工作中处理统一码文件(or其他编码)?这篇必读
  5. 深入浅出Attribute (转载)
  6. yapi 接口文档_1分钟docker部署顶尖 API 文档管理系统
  7. java转型 内存_java 对象转型内存分析
  8. codevs 3160 最长公共子串
  9. Python中的音频和数字信号处理(DSP)
  10. tp5 + 百度编辑器 +七牛云存储的实现办法
  11. java单例模式——双重检查
  12. linux下快速查找文件
  13. 【一起学生信】群体结构图形—structure堆叠图
  14. 【T+】T+常用数据库表参考
  15. 炉石传说 酒馆战棋 战斗模拟的实现
  16. python locust在linux下的安装
  17. 与 TensorFlow 的初次相遇
  18. 绕圈圈面试题(Python经典编程案例)
  19. OpenCV4.4.0 ConnectedComponents连通区域计算
  20. Modbus协议解析--小白一看就懂的协议

热门文章

  1. 使用模块化工具Rollup打包自己开发的JS库
  2. 获取到的数字证书如何配置在自己的Apache中?
  3. Linux 查看网段内所有IP
  4. Oracle容灾数据库-恢复演练方案
  5. ZooKeeper Internals -- ZooKeeper内部工作方式
  6. ElasticSearch入门教程-索引
  7. jQuery 源码解析(三十一) 动画模块 便捷动画详解
  8. Set无序集合 HashSet 的对象元素唯一性
  9. Emmet 语法 速查表
  10. 怎么让前端项目运行起来_如何立即使您的前端项目看起来更好