当前位置: 首页 > news >正文

quartz2的example3--CronTriggerExample

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

 

SimpleJob:

package com.imddy.test.quartz2.example3;


import java.util.Date;

import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.quartz.JobKey;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class SimpleJob implements Job {
	
	private static Logger logger = LoggerFactory.getLogger(SimpleJob.class);

	public SimpleJob() {
	}

	@Override
	public void execute(JobExecutionContext context) throws JobExecutionException {
		// TODO Auto-generated method stub
		JobKey jobKey = context.getJobDetail().getKey();
		logger.info("SimpleJob : " + jobKey + "工作时间在:" + new Date() );
	}

}

 

CronTriggerExample :

package com.imddy.test.quartz2.example3;

import static org.quartz.CronScheduleBuilder.cronSchedule;
import static org.quartz.JobBuilder.newJob;
import static org.quartz.TriggerBuilder.newTrigger;

import java.util.Date;

import org.quartz.CronTrigger;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SchedulerFactory;
import org.quartz.impl.StdSchedulerFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class CronTriggerExample {

	private void run() throws SchedulerException {
		// TODO Auto-generated method stub
		Logger log = LoggerFactory.getLogger(CronTriggerExample.class);
		
		log.info("------- Initializing -------------------");
		SchedulerFactory sf = new StdSchedulerFactory();
		Scheduler scheduler = sf.getScheduler();
		log.info("------- Initialization Complete --------");

	    log.info("------- Scheduling Jobs ----------------");
	    // job 1 will run every 20 seconds
	    JobDetail job = newJob(SimpleJob.class).withIdentity("job1", "group1").build();
	    CronTrigger trigger = newTrigger().withIdentity("trigger1", "group1").withSchedule(cronSchedule("0/20 * * * * ?")).build();
		
	    Date ft = scheduler.scheduleJob(job, trigger);
	    log.info(job.getKey() + " has been scheduled to run at: " + ft + " and repeat based on expression: "
	             + trigger.getCronExpression());
	    
	    
	    // job 2 will run every other minute (at 15 seconds past the minute)
	    job = newJob(SimpleJob.class).withIdentity("job2", "group1").build();

	    trigger = newTrigger().withIdentity("trigger2", "group1").withSchedule(cronSchedule("15 0/2 * * * ?")).build();

	    ft = scheduler.scheduleJob(job, trigger);
	    log.info(job.getKey() + " has been scheduled to run at: " + ft + " and repeat based on expression: "
	             + trigger.getCronExpression());

	    // job 3 will run every other minute but only between 8am and 5pm
	    job = newJob(SimpleJob.class).withIdentity("job3", "group1").build();

	    trigger = newTrigger().withIdentity("trigger3", "group1").withSchedule(cronSchedule("0 0/2 8-17 * * ?")).build();

	    ft = scheduler.scheduleJob(job, trigger);
	    log.info(job.getKey() + " has been scheduled to run at: " + ft + " and repeat based on expression: "
	             + trigger.getCronExpression());

	    // job 4 will run every three minutes but only between 5pm and 11pm
	    job = newJob(SimpleJob.class).withIdentity("job4", "group1").build();

	    trigger = newTrigger().withIdentity("trigger4", "group1").withSchedule(cronSchedule("0 0/3 17-23 * * ?")).build();

	    ft = scheduler.scheduleJob(job, trigger);
	    log.info(job.getKey() + " has been scheduled to run at: " + ft + " and repeat based on expression: "
	             + trigger.getCronExpression());

	    // job 5 will run at 10am on the 1st and 15th days of the month
	    job = newJob(SimpleJob.class).withIdentity("job5", "group1").build();

	    trigger = newTrigger().withIdentity("trigger5", "group1").withSchedule(cronSchedule("0 0 10am 1,15 * ?")).build();

	    ft = scheduler.scheduleJob(job, trigger);
	    log.info(job.getKey() + " has been scheduled to run at: " + ft + " and repeat based on expression: "
	             + trigger.getCronExpression());

	    // job 6 will run every 30 seconds but only on Weekdays (Monday through Friday)
	    job = newJob(SimpleJob.class).withIdentity("job6", "group1").build();

	    trigger = newTrigger().withIdentity("trigger6", "group1").withSchedule(cronSchedule("0,30 * * ? * MON-FRI"))
	        .build();

	    ft = scheduler.scheduleJob(job, trigger);
	    log.info(job.getKey() + " has been scheduled to run at: " + ft + " and repeat based on expression: "
	             + trigger.getCronExpression());

	    // job 7 will run every 30 seconds but only on Weekends (Saturday and Sunday)
	    job = newJob(SimpleJob.class).withIdentity("job7", "group1").build();

	    trigger = newTrigger().withIdentity("trigger7", "group1").withSchedule(cronSchedule("0,30 * * ? * SAT,SUN"))
	        .build();

	    ft = scheduler.scheduleJob(job, trigger);
	    log.info(job.getKey() + " has been scheduled to run at: " + ft + " and repeat based on expression: "
	             + trigger.getCronExpression());
	    
	    
	    
	    
	    
	    log.info("------- Starting Scheduler ----------------");

	    // All of the jobs have been added to the scheduler, but none of the
	    // jobs
	    // will run until the scheduler has been started
	    scheduler.start();

	    log.info("------- Started Scheduler -----------------");

	    log.info("------- Waiting five minutes... ------------");
	    try {
	      // wait five minutes to show jobs
	      Thread.sleep(300L * 1000L);
	      // executing...
	    } catch (Exception e) {
	      //
	    }

	    log.info("------- Shutting Down ---------------------");

	    scheduler.shutdown(true);

	    log.info("------- Shutdown Complete -----------------");
	}
	
	
	
	
	public static void main(String[] args) throws SchedulerException {
		CronTriggerExample cronTriggerExample = new CronTriggerExample();
		cronTriggerExample.run();
	}


}

 

 

 

 

 

 

 

转载于:https://my.oschina.net/lenglingx/blog/781876

相关文章:

  • ubuntu 14 中tomcat的开机启动设置
  • Java豆瓣电影爬虫——抓取电影详情和电影短评数据
  • InitialContext和lookup
  • 转】Mahout分步式程序开发 聚类Kmeans
  • Python 查看QQ状态
  • 前端弹出层框架layer
  • expect的超时处理
  • 自定义QGraphicsItem
  • FZU-2087 统计树边(最小生成树)
  • 选购线PHPUnit最佳实践:从入门到精通
  • 日常小算法
  • Cacti 监控流入流出差并作阈值报警
  • 精通Web Analytics 2.0 (7) 第五章:荣耀之钥:度量成功
  • scapy框架安装和入门
  • python知识点记录(一):
  • (ckeditor+ckfinder用法)Jquery,js获取ckeditor值
  • 【comparator, comparable】小总结
  • Angular2开发踩坑系列-生产环境编译
  • Apache Spark Streaming 使用实例
  • css属性的继承、初识值、计算值、当前值、应用值
  • Fastjson的基本使用方法大全
  • java8-模拟hadoop
  • spring学习第二天
  • 动手做个聊天室,前端工程师百无聊赖的人生
  • 互联网大裁员:Java程序员失工作,焉知不能进ali?
  • 猫头鹰的深夜翻译:JDK9 NotNullOrElse方法
  • 通过git安装npm私有模块
  • 一个6年java程序员的工作感悟,写给还在迷茫的你
  • 树莓派用上kodexplorer也能玩成私有网盘
  • ​LeetCode解法汇总307. 区域和检索 - 数组可修改
  • ​ssh免密码登录设置及问题总结
  • !!【OpenCV学习】计算两幅图像的重叠区域
  • #FPGA(基础知识)
  • #includecmath
  • #我与Java虚拟机的故事#连载03:面试过的百度,滴滴,快手都问了这些问题
  • (16)Reactor的测试——响应式Spring的道法术器
  • (30)数组元素和与数字和的绝对差
  • (4)通过调用hadoop的java api实现本地文件上传到hadoop文件系统上
  • (42)STM32——LCD显示屏实验笔记
  • (C语言版)链表(三)——实现双向链表创建、删除、插入、释放内存等简单操作...
  • (html转换)StringEscapeUtils类的转义与反转义方法
  • (Redis使用系列) Springboot 整合Redisson 实现分布式锁 七
  • (阿里云万网)-域名注册购买实名流程
  • (附源码)springboot人体健康检测微信小程序 毕业设计 012142
  • (六)vue-router+UI组件库
  • (亲测)设​置​m​y​e​c​l​i​p​s​e​打​开​默​认​工​作​空​间...
  • (转载)Linux网络编程入门
  • .FileZilla的使用和主动模式被动模式介绍
  • .Mobi域名介绍
  • .mysql secret在哪_MYSQL基本操作(上)
  • .NET WebClient 类下载部分文件会错误?可能是解压缩的锅
  • .NET Windows:删除文件夹后立即判断,有可能依然存在
  • .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢?
  • .net6 webapi log4net完整配置使用流程
  • .Net中wcf服务生成及调用