SimpleTrigger的作用

在一个指定时间段内执行一次作业任务或是在指定的时间间隔内多次执行作业任务

使用实例1:距离当前时间4s钟后执行,且执行一次

package com.test.quartz.myquartz;

import java.text.SimpleDateFormat;
import java.util.Date; import org.quartz.JobBuilder;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SchedulerFactory;
import org.quartz.SimpleScheduleBuilder;
import org.quartz.SimpleTrigger;
import org.quartz.Trigger;
import org.quartz.TriggerBuilder;
import org.quartz.impl.StdSchedulerFactory; public class HelloScheduler { public static void main(String[] args) throws SchedulerException {
//打印当前的执行时间
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String currentTime = sdf.format(date);
System.out.println("Current Time : "+currentTime);
//获取4秒钟之后的具体时间
date.setTime(date.getTime()+4000);
//创建一个JobDetail实例,将该实例与HelloJob class绑定
JobDetail jobDetail = JobBuilder.newJob(HelloJob.class)
.withIdentity("myJob", "group1")
.build();
//创建一个Trigger实例,定义该Job距离当前时间4s钟后执行,且执行一次
SimpleTrigger trigger = (SimpleTrigger)TriggerBuilder.newTrigger()
.withIdentity("myTrigger", "group1")
.startAt(date)
.build();
//创建Scheduler实例
SchedulerFactory sfact = new StdSchedulerFactory();
Scheduler scheduler = sfact.getScheduler();
scheduler.start();
scheduler.scheduleJob(jobDetail, trigger);
} }
package com.test.quartz.myquartz;

import java.text.SimpleDateFormat;
import java.util.Date; import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException; public class HelloJob implements Job{ public void execute(JobExecutionContext context) throws JobExecutionException { //打印当前的执行时间
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String currentTime = sdf.format(date);
System.out.println("Current Exec Time : "+currentTime);
//编写具体的业务逻辑
System.out.println("Hello world");
} }

实例2:距离当前时间4s钟后首次执行任务,之后每隔2秒钟重复执行任务

package com.test.quartz.myquartz;

import java.text.SimpleDateFormat;
import java.util.Date; import org.quartz.JobBuilder;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SchedulerFactory;
import org.quartz.SimpleScheduleBuilder;
import org.quartz.SimpleTrigger;
import org.quartz.Trigger;
import org.quartz.TriggerBuilder;
import org.quartz.impl.StdSchedulerFactory; public class HelloScheduler { public static void main(String[] args) throws SchedulerException {
//打印当前的执行时间
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String currentTime = sdf.format(date);
System.out.println("Current Time : "+currentTime);
//获取4秒钟之后的具体时间
date.setTime(date.getTime()+4000);
//创建一个JobDetail实例,将该实例与HelloJob class绑定
JobDetail jobDetail = JobBuilder.newJob(HelloJob.class)
.withIdentity("myJob", "group1")
.build();
//创建一个Trigger实例,定义该Job距离当前时间4s钟后首次执行任务,之后每隔2秒钟重复执行任务
SimpleTrigger trigger = (SimpleTrigger)TriggerBuilder.newTrigger()
.withIdentity("myTrigger", "group1")
.startAt(date)
.withSchedule(
SimpleScheduleBuilder.
simpleSchedule().
withIntervalInSeconds(2).
withRepeatCount(
SimpleTrigger.REPEAT_INDEFINITELY)
)
.build();
//创建Scheduler实例
SchedulerFactory sfact = new StdSchedulerFactory();
Scheduler scheduler = sfact.getScheduler();
scheduler.start();
scheduler.scheduleJob(jobDetail, trigger);
} }

实例3:距离当前时间4s钟后首次执行任务,之后重复执行3次

package com.test.quartz.myquartz;

import java.text.SimpleDateFormat;
import java.util.Date; import org.quartz.JobBuilder;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SchedulerFactory;
import org.quartz.SimpleScheduleBuilder;
import org.quartz.SimpleTrigger;
import org.quartz.Trigger;
import org.quartz.TriggerBuilder;
import org.quartz.impl.StdSchedulerFactory; public class HelloScheduler { public static void main(String[] args) throws SchedulerException {
//打印当前的执行时间
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String currentTime = sdf.format(date);
System.out.println("Current Time : "+currentTime);
//获取4秒钟之后的具体时间
date.setTime(date.getTime()+4000);
//创建一个JobDetail实例,将该实例与HelloJob class绑定
JobDetail jobDetail = JobBuilder.newJob(HelloJob.class)
.withIdentity("myJob", "group1")
.build();
//创建一个Trigger实例,定义该Job距离当前时间4s钟后首次执行任务,之后重复执行3次
SimpleTrigger trigger = (SimpleTrigger)TriggerBuilder.newTrigger()
.withIdentity("myTrigger", "group1")
.startAt(date)
.withSchedule(
SimpleScheduleBuilder.
simpleSchedule().
withIntervalInSeconds(2).
withRepeatCount(3))
.build();
//创建Scheduler实例
SchedulerFactory sfact = new StdSchedulerFactory();
Scheduler scheduler = sfact.getScheduler();
scheduler.start();
scheduler.scheduleJob(jobDetail, trigger);
} }

SimpleTrigger的使用的更多相关文章

  1. Spring4定时器 cronTrigger和simpleTrigger实现方法

    spring4定时器 cronTrigger和simpleTrigger实现方法 Quartz 是个开源的作业调度框架,为在 Java 应用程序中进行作业调度提供了简单却强大的机制.Quartz 允许 ...

  2. Quartz Scheduler(2.2.1) - Usage of SimpleTrigger

    SimpleTrigger should meet your scheduling needs if you need to have a job execute exactly once at a ...

  3. 根据SimpleScheduleBuilder配置不同的SimpleTrigger触发器

    Job代码: [java] view plaincopy package cn.zto.job;  import java.text.SimpleDateFormat;  import java.ut ...

  4. Quarts SimpleTrigger going to BLOCKED state after few repeat intervals--stackoverflow

    question: I am using SimpleTrigger to schedule a job which is supposed to run indefinitely (repeat c ...

  5. 第七节:Trigger(SimpleTrigger、CronTrigger)哑火(MisFire)策略 :

    一. 简介 1. 什么是哑火 由于某些原因导致触发器(trigger)在该触发的时候没有得到触发,后续对应的解决策略即为哑火策略.(个人理解) 2. 哑火触发的条件 ①:所有的工作线程都在忙碌,导致某 ...

  6. Quartz.Net进阶之三:SimpleTrigger详述

    以前都是将所有的内容放在一篇文章里,就会导致文章很长,对于学习的人来说,有时候这也是一个障碍.所以,以后我的写作习惯,我就会把我写的文章缩短,但是内容不会少,内容更集中.这样,学习起来也不会很累,很容 ...

  7. Tirgger SimpleTrigger CronTrigger(四)

    触发器通用属性: jobKey:表示job实例的标识,触发器被触发时,指定的job实例会被执行. startTime:表示触发器的时间表 首次被触发的时间,他的值类型为java.uti.Date. e ...

  8. [译]Quartz.NET 框架 教程(中文版)2.2.x 之第五课 SimpleTrigger

    第五课 SimpleTrigger 如果你需要在一个指定时间段内执行一次作业任务或是在指定的时间间隔内多次执行作业任务,SimpleTrigger应该能满足你的调度需求.例如,你希望触发器在2015年 ...

  9. Quartz教程五:SimpleTrigger

    原文链接 | 译文链接 | 翻译:nkcoder 本系列教程由quartz-2.2.x官方文档翻译.整理而来,希望给同样对quartz感兴趣的朋友一些参考和帮助,有任何不当或错误之处,欢迎指正:有兴趣 ...

  10. 任务调度 Quartz 学习(一) SimpleTrigger

    概述: 在实际开发过程中,会遇到很多任务调度的需求. 比如说:某网站要在每周一上午9点更新网站数据,并发邮件通知用户: 再比如某论坛需求:每隔半个小时生成精华文章的RSS文件,每天凌晨统计论坛用户的积 ...

随机推荐

  1. PAT Advanced 1092 To Buy or Not to Buy (20) [Hash散列]

    题目 Eva would like to make a string of beads with her favorite colors so she went to a small shop to ...

  2. python库文件下载地址(持续更新)

    numpy https://pypi.org/project/numpy/#files PIL https://pypi.org/simple/pillow/ cv2 https://pypi.tun ...

  3. win10环境下pycharm成功安装torch,解决报错:from torch._C import * ImportError: DLL load failed: 找不到指定的模块

    https://blog.csdn.net/watermelon12138/article/details/97624733

  4. 如何编写一个vue应用

    1.vue应用的组成 1.1 vuex Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化 通常 ...

  5. Spring核心实现篇

    一.Spring Framework的核心:IoC容器的实现 1.1Spring IoC的容器概述 1.1.1 IoC容器和控制反转模式 依赖控制反转的实现有很多种方式.在Spring中,IOC容器是 ...

  6. Spring4.3.25版本使用的积累性总结(不定期更新)

    Spring4.3.25版本使用的积累性总结 Spring4.x所有Maven依赖 Spring基于XML配置方式注入bean对象和@Resource注解的使用 详解Spring3.x 升级至 Spr ...

  7. 14 微服务电商【黑马乐优商城】:day02-springcloud(理论篇一:HttpClient的简单使用)

    本项目的笔记和资料的Download,请点击这一句话自行获取. day01-springboot(理论篇) :day01-springboot(实践篇) day02-springcloud(理论篇一: ...

  8. maven 设置pom 指定jdk版本

    <profile> <id>jdk-1.8</id> <activation> <activeByDefault>true</acti ...

  9. 如何找到我的Python site-packages目录的位置?

    来源:广州SEO 我如何找到我的site-packages目录的位置? #1楼 这对我有用: python -m site --user-site #2楼 从“如何安装Django”文档 (尽管这不仅 ...

  10. 筛选nginx访问日志文件中的域名

    head  -n 500 1.log |awk  '{print $11}' > 1.txt     查看1.log日志文件前500行记录并打印出第11列也就是域名的那一列,并输出到1.txt文 ...