Spring4 Quartz2 动态任务,Spring4整合quartz2.2.3简单动态任务
来源:互联网 发布:xp网络被劫持 编辑:程序博客网 时间:2024/05/23 14:14
Spring4 Quartz2 动态任务
Spring4整合quartz2.2.3简单动态任务,
Quartz2.2.3简单动态定时任务二,
SimpleScheduleBuilder简单定时任务
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
©Copyright 蕃薯耀 2017年9月6日
http://www.cnblogs.com/fanshuyao/
此处使用的是Quartz中SimpleScheduleBuilder类,非CronScheduleBuilder,CronScheduleBuilder是Cron表达式的。具体请自行百度。
- /**
- * 新增任务
- * @param scheduleJob
- * @throws Exception
- */
- @Override
- @SuppressWarnings("unchecked")
- public void addJobSimple(ScheduleJob scheduleJob) throws Exception{
- TriggerKey triggerKey = TriggerKey.triggerKey(scheduleJob.getJobName(), scheduleJob.getJobGroup());
- //任务触发
- Trigger trigger = scheduler.getTrigger(triggerKey);
- if (null == trigger) {
- JobDetail jobDetail = JobBuilder.newJob((Class<? extends Job>) Class.forName(scheduleJob.getClazz()))
- .withIdentity(scheduleJob.getJobName(), scheduleJob.getJobGroup()).build();
- jobDetail.getJobDataMap().put("scheduleJob", scheduleJob);
- SimpleScheduleBuilder simpleScheduleBuilder = SimpleScheduleBuilder.simpleSchedule();
- if("秒".equals(scheduleJob.getTimeType()) ||
- "second".equalsIgnoreCase(scheduleJob.getTimeType())){
- simpleScheduleBuilder.withIntervalInSeconds(scheduleJob.getTimeValue()).repeatForever();
- }else if("分".equals(scheduleJob.getTimeType()) || "分钟".equals(scheduleJob.getTimeType()) ||
- "minute".equalsIgnoreCase(scheduleJob.getTimeType())){
- simpleScheduleBuilder.withIntervalInMinutes(scheduleJob.getTimeValue()).repeatForever();
- }else if("时".equals(scheduleJob.getTimeType()) || "小时".equals(scheduleJob.getTimeType()) ||
- "hour".equalsIgnoreCase(scheduleJob.getTimeType())){
- simpleScheduleBuilder.withIntervalInHours(scheduleJob.getTimeValue()).repeatForever();
- }else if("天".equals(scheduleJob.getTimeType()) ||
- "date".equalsIgnoreCase(scheduleJob.getTimeType())){
- simpleScheduleBuilder.withIntervalInHours(scheduleJob.getTimeValue()).repeatForever();
- }
- ScheduleBuilder<SimpleTrigger> schedBuilder = simpleScheduleBuilder.withMisfireHandlingInstructionNextWithRemainingCount();
- trigger =TriggerBuilder.newTrigger().withIdentity(scheduleJob.getJobName(), scheduleJob.getJobGroup())
- .withSchedule(schedBuilder).build();
- trigger = TriggerBuilder.newTrigger().withIdentity(scheduleJob.getJobName(), scheduleJob.getJobGroup()).withSchedule(schedBuilder).build();
- scheduler.scheduleJob(jobDetail, trigger);
- log.info(CC.LOG_PREFIX + "新增简单任务:"+JasonUtils.Object2String(scheduleJob));
- }else {
- this.updateJobCron(scheduleJob);
- }
- }
需要注意是的,当定时任务只执行一次时,就要仔细看代码,如上面的简单定时任务,刚开始是我这样的:
- simpleScheduleBuilder.withIntervalInSeconds(scheduleJob.getTimeValue());
结果只执行一次,而我需要的是不断循环执行,最后改成:
- simpleScheduleBuilder.withIntervalInSeconds(scheduleJob.getTimeValue()).repeatForever();
可以看出,后面多了个:repeatForever(),表示永远重复。
如果是希望执行多少次后不执行,就使用:.withRepeatCount(triggerRepeatCount),如下:
- simpleScheduleBuilder.withIntervalInHours(scheduleJob.getTimeValue()).withRepeatCount(triggerRepeatCount);
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
©Copyright 蕃薯耀 2017年9月6日
http://www.cnblogs.com/fanshuyao/
阅读全文
0 0
- Spring4 Quartz2 动态任务,Spring4整合quartz2.2.3简单动态任务
- spring4+ Quartz2动态任务
- Spring4+Quartz2集群动态创建任务
- Spring4+Quartz2集群动态创建任务
- Spring4整合Quartz2实现定时任务
- Spring4.2.4和quartz2.2.3整合定时任务
- spring4和quartz2.x整合,对任务做动态操作(增删改查)
- Spring4+Quartz2计划任务集群
- spring4+ Quartz2普通定时任务
- Spring4整合quartz2.3,集群定时任务处理
- Quartz2.1+Spring4实现任务调度简单示例
- Spring定时任务,Spring4整合quartz2.2,quartz-scheduler定时任务
- spring4.2.2+quartz2.2.1整合
- Spring 和Quartz2 整合实现动态定时任务
- spring4整合quartz2.x集群配置,并实现任务计数功能
- Spring4.x整合Quartz2.x动态修改定时器时间(修正多定时器SpringBean异常)
- Spring4.x整合Quartz2.x动态修改定时器时间(修正多定时器SpringBean异常)
- Spring4.X整合quartz2.X的超简单配置
- 查询某个字段不等于某个值的数据,为NULL的数据也查询不到
- hadoop之 HDFS-Hadoop存档
- Dubbo分布式服务框架入门(附工程)
- 【SQL Server学习笔记】8:T-SQL部分基本语法
- 除了443、14000端口,还有哪些端口是https的?
- Spring4 Quartz2 动态任务,Spring4整合quartz2.2.3简单动态任务
- 用shell脚本运行Java程序
- SecondNamenode
- python中os和sys模块的使用
- 初学者实践日志3
- Angular学习视频资料
- 斐波那契数列Fibonacci
- [初学笔记] matlab中 struct的用法,以及如何保存在xls中
- LeetCode 189. Rotate Array