java定时任务什么时间e结束_Java定时任务
public classQuartzManager {private static SchedulerFactory schedulerFactory = newStdSchedulerFactory();/*** @Description: 添加一个定时任务
*
*@paramjobName 任务名
*@paramjobGroupName 任务组名
*@paramtriggerName 触发器名
*@paramtriggerGroupName 触发器组名
*@paramjobClass 任务
*@paramcron 时间设置,参考quartz说明文档*/@SuppressWarnings({"unchecked", "rawtypes"})public static voidaddJob(String jobName, String jobGroupName, String triggerName, String triggerGroupName, Class jobClass, String cron) {try{
Scheduler sched=schedulerFactory.getScheduler();//任务名,任务组,任务执行类
JobDetail jobDetail=JobBuilder.newJob(jobClass).withIdentity(jobName, jobGroupName).build();//触发器
TriggerBuilder triggerBuilder =TriggerBuilder.newTrigger();//触发器名,触发器组
triggerBuilder.withIdentity(triggerName, triggerGroupName);
triggerBuilder.startNow();//触发器时间设定
triggerBuilder.withSchedule(CronScheduleBuilder.cronSchedule(cron));//创建Trigger对象
CronTrigger trigger =(CronTrigger) triggerBuilder.build();//调度容器设置JobDetail和Trigger
sched.scheduleJob(jobDetail, trigger);//启动
if (!sched.isShutdown()) {
sched.start();
}
}catch(Exception e) {throw newRuntimeException(e);
}
}/*** @Description: 修改一个任务的触发时间
*
*@paramjobName
*@paramjobGroupName
*@paramtriggerName 触发器名
*@paramtriggerGroupName 触发器组名
*@paramcron 时间设置,参考quartz说明文档*/
public static voidmodifyJobTime(String jobName, String jobGroupName, String triggerName, String triggerGroupName, String cron) {try{
Scheduler sched=schedulerFactory.getScheduler();
TriggerKey triggerKey=TriggerKey.triggerKey(triggerName, triggerGroupName);
CronTrigger trigger=(CronTrigger) sched.getTrigger(triggerKey);if (trigger == null) {return;
}
String oldTime=trigger.getCronExpression();if (!oldTime.equalsIgnoreCase(cron)) {/**方式一 :调用 rescheduleJob 开始*/
//触发器
TriggerBuilder triggerBuilder =TriggerBuilder.newTrigger();//触发器名,触发器组
triggerBuilder.withIdentity(triggerName, triggerGroupName);
triggerBuilder.startNow();//触发器时间设定
triggerBuilder.withSchedule(CronScheduleBuilder.cronSchedule(cron));//创建Trigger对象
trigger =(CronTrigger) triggerBuilder.build();
sched.rescheduleJob(triggerKey, trigger);/**方式二:先删除,然后在创建一个新的Job*/
/*JobDetail jobDetail = sched.getJobDetail(JobKey.jobKey(jobName, jobGroupName));
Class extends Job> jobClass = jobDetail.getJobClass();
removeJob(jobName, jobGroupName, triggerName, triggerGroupName);
addJob(jobName, jobGroupName, triggerName, triggerGroupName, jobClass, cron);*/}
}catch(Exception e) {throw newRuntimeException(e);
}
}/*** @Description: 移除一个任务
*
*@paramjobName
*@paramjobGroupName
*@paramtriggerName
*@paramtriggerGroupName*/
public static voidremoveJob(String jobName, String jobGroupName,
String triggerName, String triggerGroupName) {try{
Scheduler sched=schedulerFactory.getScheduler();
TriggerKey triggerKey=TriggerKey.triggerKey(triggerName, triggerGroupName);
sched.pauseTrigger(triggerKey);//停止触发器
sched.unscheduleJob(triggerKey);//移除触发器
sched.deleteJob(JobKey.jobKey(jobName, jobGroupName));//删除任务
} catch(Exception e) {throw newRuntimeException(e);
}
}/*** @Description:启动所有定时任务*/
public static voidstartJobs() {try{
Scheduler sched=schedulerFactory.getScheduler();
sched.start();
}catch(Exception e) {throw newRuntimeException(e);
}
}/*** @Description:关闭所有定时任务*/
public static voidshutdownJobs() {try{
Scheduler sched=schedulerFactory.getScheduler();if (!sched.isShutdown()) {
sched.shutdown();
}
}catch(Exception e) {throw newRuntimeException(e);
}
}
}
java定时任务什么时间e结束_Java定时任务相关推荐
- java string类型时间比较大小_Java String类型时间比较大小
Java String类型时间比较大小,写了比较时间的函数,这里总结一下. package com.zz.bridge.impl; import java.text.DateFormat; impor ...
- java怎么将时间格式化输出_Java获取时间日期并格式化输出
Java获取当前系统时间.自定义时间和日期格式化输出部分应用总结 1.java获取当前时间,并格式化输出,如2018-12-01 11:20:11 // 获取当前时间,并格式化输出,如2018-12- ...
- java设置job时间每分钟_Spring设置定时任务时,关于执行时间的规则设置
从上面的配置可用看出,org.springframework.scheduling.quartz.CronTriggerBean允许你更精确地控制任务的运行时间,只需要设置其cronExpressio ...
- java中微秒时间相减_Java计算时间差(两个时间相减)
在Android开发或者Java学习中,经常要求两个时间差 比如说: 现在是 :2004-03-26 13:31:40 过去是:2004-01-02 11:30:24 我现在要获得两个日期差,差的形式 ...
- java wait到时间会自动_Java的Object.wait(long)在等待时间过去后会继续往后执行吗
Java的Object.wait(long)在等待时间过去后会继续往后执行吗 Object.wait(long)方法相比于wait,多了个等待时长,那么当等待时长过去后,线程会继续往下执行吗? 单个线 ...
- java两个时间相差分钟_Java计算两个日期时间相差几天,几小时,几分钟等
展开全部 思路是先计算两个62616964757a686964616fe59b9ee7ad9431333365666264日期相差的毫秒数,然后分别根据每天的毫秒数.每小时的毫秒数.每分钟的毫秒数来计 ...
- java获取当前时间星期几_java怎么获取当前日期是星期几
java怎么获取当前日期是星期几 第一种方法:/** * 获取当前日期是星期几 * * @param date * @return 当前日期是星期几 */ public String getWeekO ...
- java获取系统时间到毫秒_java获取当前时间精确到毫秒
[java:long now = System.currentTimeMillis()javascript:var now = new Date().getTime();objective-c:lon ...
- Java 中Timer和TimerTask 定时器和定时任务使用的例子
转载自 Java 中Timer和TimerTask 定时器和定时任务使用的例子 这两个类使用起来非常方便,可以完成我们对定时器的绝大多数需求 Timer类是用来执行任务的类,它接受一个TimerTa ...
最新文章
- 素数与量子物理的结合能带来解决黎曼猜想的新可能吗?
- SSM中进行注解式和XML配置式事务管理
- 讲讲OC曲线是什么?
- cla c 语言编译器,第九章 CLA_C2000_C_Compiler.pdf
- 【FPGA Verilog】实验二:key按键基础实验
- PHP 判断点是否在多边形内
- 小米机器狗CyberDog
- c# 第8节 变量、变量名命令规则、作用域、@的作用
- 汇编语言编写Hello World
- Java编译器 iOS_Java编译器
- phpMyAdmin下载、安装和使用入门教程
- 衡水中学2021年的高考成绩查询,2021衡水市地区高考成绩排名查询,衡水市高考各高中成绩喜报榜单...
- Mac系统不能使用网银怎么办?Parallels帮你
- Mysql NDB Cluster搭建测试
- 城市信息化重要载体“无线城市”
- win10、ThinkPad遇到静音键不亮,但可以使用的问题
- 区块链共识算法及应用研究
- word自动消除html标签,如何将Word转换为网页html格式的方法(附代码清理方法)
- vscode自动格式化python代码符合pep8
- SYN8086语音合成芯片(TTS语音芯片)各项指标测试已完成,正式批量化生产