quartz配置发布定时任务(二)
来源:互联网 发布:java编程需要哪些软件 编辑:程序博客网 时间:2024/05/16 14:29
上章(一)介绍定时任务xml配置,虽然可以配置多个定时任务,但是每次修改时间什么的都需要在xml里面改,这样不便于管理。 本章(二)主要实现动态增删改查定时任务,cron时间表达式,定时任务名称,定时器名都是以参数的形式。
- 环境jar包,jar包下载:http://download.csdn.net/detail/qq_22860341/9828157
2..xml配置(我配置在spring-mvc.xml)
<bean name ="schedulerFactory" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
3.代码实现(定时任务名,组名什么的可以页面设置名称,也可以设置成自增)
private static SchedulerFactory schedulerFactory = new StdSchedulerFactory(); private Scheduler scheduler; public void setScheduler(Scheduler scheduler) { this.scheduler = scheduler; } /** * @Description: 添加一个定时任务 * * @param jobName * 任务名(可以页面设置名称,也可以设置成自增) * @param jobGroupName * 任务组名 * @param triggerName * 触发器名 * @param triggerGroupName * 触发器组名 * @param jobClass * 任务 * @param time * 时间设置,参考quartz说明文档(cron表达式时间) * @param stime * 定时任务开始时间 * @param etime * 定时任务结束时间 */ public static void addJob(String jobName, String jobGroupName, String triggerName, String triggerGroupName, Class jobClass, String time,String stime,String etime) { try { Scheduler sched = schedulerFactory.getScheduler(); JobDetail jobDetail = new JobDetail(jobName, jobGroupName, jobClass);// 任务名,任务组,任务执行类 // 触发器 CronTrigger trigger = new CronTrigger(triggerName, triggerGroupName);// 触发器名,触发器组 trigger.setCronExpression(time);// 触发器时间设定 if(!"".equals(stime)){ Date s = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(stime); trigger.setStartTime(s); } if(!"".equals(etime)){ Date e = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(etime); trigger.setStartTime(e); } sched.scheduleJob(jobDetail, trigger); sched.start(); } catch (Exception e) { throw new RuntimeException(e); } }/** * @Description: 修改一个任务的触发时间 * * @param triggerName * @param triggerGroupName * @param time */ public static void modifyJobTime(String triggerName, String triggerGroupName, String time) { try { Scheduler sched = schedulerFactory.getScheduler(); CronTrigger trigger = (CronTrigger) sched.getTrigger(triggerName, triggerGroupName); if (trigger == null) { return; } String oldTime = trigger.getCronExpression(); if (!oldTime.equalsIgnoreCase(time)) { CronTrigger ct = (CronTrigger) trigger; // 修改时间 ct.setCronExpression(time); // 重启触发器 sched.rescheduleJob(triggerName, triggerGroupName, trigger); } } catch (Exception e) { throw new RuntimeException(e); } } /** * @Description: 移除一个任务 * * @param jobName * @param jobGroupName * @param triggerName * @param triggerGroupName */ public static void removeJob(String jobName, String jobGroupName, String triggerName, String triggerGroupName) { try { Scheduler sched = schedulerFactory.getScheduler(); sched.pauseTrigger(triggerName, triggerGroupName);// 停止触发器 sched.unscheduleJob(triggerName, triggerGroupName);// 移除触发器 sched.deleteJob(jobName, jobGroupName);// 删除任务 } catch (Exception e) { throw new RuntimeException(e); } }/** * @Description:启动所有定时任务 */ public static void startJobs() { try { Scheduler sched = schedulerFactory.getScheduler(); sched.start(); } catch (Exception e) { throw new RuntimeException(e); } } /** * @Description:关闭所有定时任务 */ public static void shutdownJobs() { try { Scheduler sched = schedulerFactory.getScheduler(); if (!sched.isShutdown()) { sched.shutdown(); } } catch (Exception e) { throw new RuntimeException(e); } }
4.定时任务执行类,添加定时任务的具体业务类,实现Job类。
public class QuartzJobController implements Job { @Override public void execute(JobExecutionContext context) throws JobExecutionException { CronTrigger trigger = (CronTrigger) context.getTrigger(); //获取当前定时任务的定时器 String jobname = trigger.getJobName(); //具体业务实现 } }
5,jsp页面参考
可以参考百度cron表达式 http://cron.qqe2.com/ 源码下载地址http://download.csdn.net/detail/qq_22860341/9828074
6,本人的定时任务页面,根据上图所来,可以根据它的规则拼接,可以直接用,根据自己喜好和业务。介绍2种:
7.不懂的地方或者有好建议,有错误的地方欢迎指教QQ2118119173,欢迎打赏
1 0
- quartz配置发布定时任务(二)
- Quartz+Spring 分布式定时任务调度(二)- 集群配置
- Quartz定时任务配置
- Quartz定时任务配置
- Quartz定时任务配置
- quartz配置发布定时任务(一)(XML里面配置一个或多个)
- Spring+quartz定时任务(配置)
- 定时任务设计(二):Quartz
- quartz(定时任务)
- SpringMVC+Quartz配置定时任务
- Quartz 定时任务 时间配置
- Spring定时任务配置quartz
- quartz 配置 动态定时任务
- spring quartz 定时任务配置
- Quartz定时任务使用配置
- quartz定时任务配置实例
- Spring+Quartz配置定时任务
- Spring配置Quartz定时任务
- PXE实现流程
- C# 网络操作相关类
- Glide缓存
- BrocastReceiver(一)
- ORA-12560 TNS 协议适配器错误
- quartz配置发布定时任务(二)
- 树的子结构—递归、Java
- python GUI编程(Tkinter)简单使用
- viewport理解
- 金典——碰撞的蚂蚁
- LeetCode Algorithms 33. Search in Rotated Sorted Array
- json 基础demo
- C# ADSL重新连接、拨号
- 解决CentOS7关闭/开启防火墙出现Unit iptables.service failed to load: No such file or directory.