SimpleTrigger的使用
2024-09-04 19:48:32
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);
} }
最新文章
- 在Outlook中查看预览SharePoint文档库的文档
- Google Maps地图投影全解析(3):WKT形式表示
- Java-基础练习3
- Android Launcher 研究学习
- redis配置文件
- python核心编程第六章练习6-8
- Linux FTP服务器搭建与使用
- Ubuntu下与菜单和图标相关的几个文件夹
- 微信小程序的动画效果
- linux-网络数据包抓取-tcpdump
- [Selenium With C#学习笔记] Lesson-06 单选按钮
- python通过excel对数据库插入数据
- HDU1532 Drainage Ditches SAP+链式前向星
- win10 音频服务未响应的解决方法
- 用一个简单的例子比较SVM,MARS以及BRUTO(R语言)
- windows应用程序框架及实例
- web移动端区分Android或者ios系统
- Keras 资源
- 从零开始学 Web 之 JavaScript(五)面向对象
- vue报错 ModuleBuildError: Module build failed: Error: `sass-loader` requires `node-sass` >;=4. Please install a compatible version.