十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
这篇文章主要为大家展示了Spring怎么整合Quartz开发,内容简而易懂,希望大家可以学习一下,学习完之后肯定会有收获的,下面让小编带大家一起来看看吧。
我们提供的服务有:网站建设、网站制作、微信公众号开发、网站优化、网站认证、秀山土家族苗族ssl等。为超过千家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的秀山土家族苗族网站制作公司
xml文件配置如下:
<?xml version="1.0" encoding="UTF-8"?>
public class SimpleJob extends QuartzJobBean { @Override protected void executeInternal(JobExecutionContext context) throws JobExecutionException { System.out.println(new Date()+"执行SimpleJob"); } }
public class ApplicationContextTest { public static Scheduler scheduler; public static void main(String[] args) throws Exception { ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationcontext-trigger.xml"); scheduler = (Scheduler) applicationContext.getBean("quartzScheduler"); //SimpleJob simpleJob = new SimpleJob(); scheduler.start(); //从数据库中获取相应的job及调度信息 //JobDetail jobDetail = scheduler.getJobDetail(new JobKey("trigger1", "trigger1")); //resumeJob(jobDetail.getKey().getName(), jobDetail.getKey().getGroup()); //添加job执行 addJob("trigger1", "trigger1", "job1", "job2", "0/20 * * * * ?", SimpleJob.class, new HashMap<>()); Thread.sleep(60 * 1000); //重新设置调度时间 System.out.println("重新设置调度时间"); rescheduleJob("trigger1","trigger1","0/10 * * * * ?"); Thread.sleep(60 * 1000); //暂停调度 System.out.println("暂停调度"); pauseJob("trigger1","trigger1"); Thread.sleep(60 * 1000); System.out.println("恢复调度"); resumeJob("trigger1","trigger1"); Thread.sleep(60 * 1000); System.out.println("删除调度"); removeJob("trigger1","trigger1"); Thread.sleep(60 * 1000); System.out.println(scheduler); } /** * 添加job执行 * * @param triggerKeyName * @param triggerKeyGroup * @param jobName * @param jobGroup * @param cronExpression * @param jobClass * @param jobData * @return * @throws Exception */ public static boolean addJob(String triggerKeyName, String triggerKeyGroup, String jobName, String jobGroup, String cronExpression, Class<? extends Job> jobClass, MapjobData) throws Exception { JobDetail jobDetail = JobBuilder.newJob(jobClass).withIdentity(triggerKeyName, triggerKeyGroup).build(); Trigger trigger = TriggerBuilder.newTrigger().withSchedule(CronScheduleBuilder.cronSchedule(cronExpression)).withIdentity(triggerKeyName, triggerKeyGroup).build(); if (jobData != null && jobData.size() > 0) { JobDataMap jobDataMap = jobDetail.getJobDataMap(); jobDataMap.putAll(jobData); // JobExecutionContext context.getMergedJobDataMap().get("mailGuid"); } scheduler.scheduleJob(jobDetail, trigger); // if (!scheduler.isShutdown()) { // scheduler.start(); // } return true; } /** * 重新设置job执行 * @param triggerKeyName * @param triggerKeyGroup * @param cronExpression * @return * @throws SchedulerException */ public static boolean rescheduleJob(String triggerKeyName, String triggerKeyGroup, String cronExpression) throws SchedulerException { TriggerKey triggerKey = TriggerKey.triggerKey(triggerKeyName, triggerKeyGroup); if (scheduler.checkExists(triggerKey)) { Trigger trigger = TriggerBuilder.newTrigger().withSchedule(CronScheduleBuilder.cronSchedule(cronExpression)).withIdentity(triggerKey).build(); scheduler.rescheduleJob(triggerKey, trigger); } return true; } /** * 删除job * @param triggerKeyName * @param triggerKeyGroup * @return * @throws SchedulerException */ public static boolean removeJob(String triggerKeyName, String triggerKeyGroup) throws SchedulerException { // TriggerKey : name + group TriggerKey triggerKey = TriggerKey.triggerKey(triggerKeyName, triggerKeyGroup); boolean result = false; if (scheduler.checkExists(triggerKey)) { result = scheduler.unscheduleJob(triggerKey); } return result; } /** * 暂停job * @param triggerKeyName * @param triggerKeyGroup * @return * @throws SchedulerException */ public static boolean pauseJob(String triggerKeyName, String triggerKeyGroup) throws SchedulerException { // TriggerKey : name + group TriggerKey triggerKey = TriggerKey.triggerKey(triggerKeyName, triggerKeyGroup); boolean result = false; if (scheduler.checkExists(triggerKey)) { scheduler.pauseTrigger(triggerKey); result = true; } else { } return result; } /** * 重启job * @param triggerKeyName * @param triggerKeyGroup * @return * @throws SchedulerException */ public static boolean resumeJob(String triggerKeyName, String triggerKeyGroup) throws SchedulerException { TriggerKey triggerKey = TriggerKey.triggerKey(triggerKeyName, triggerKeyGroup); boolean result = false; if (scheduler.checkExists(triggerKey)) { scheduler.resumeTrigger(triggerKey); result = true; } else { } return result; } }
quart.properties正常配置信息,然后点击运行即可。
本实例中当运行的任务在暂停的情况下,一旦重新恢复,会将暂停期间的任务运行如图:
以上就是关于Spring怎么整合Quartz开发的内容,如果你们有学习到知识或者技能,可以把它分享出去让更多的人看到。