排除每周的几天
2012-08-07 09:16
134 查看
package com.cavaness.quartzbook.chapter3; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.List; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.quartz.JobDetail; import org.quartz.Scheduler; import org.quartz.SchedulerException; import org.quartz.SimpleTrigger; import org.quartz.Trigger; import org.quartz.TriggerUtils; import org.quartz.impl.StdSchedulerFactory; import org.quartz.impl.calendar.AnnualCalendar; import org.quartz.impl.calendar.WeeklyCalendar; /** * 编程式调度器,排除每周的几天 * @author Kevin * */ public class Listing_4_9 { private static Log log = LogFactory.getLog(Listing_3_5.class); /** * 创建,启动调度器 * @throws SchedulerException */ public void startScheduler() throws SchedulerException { Scheduler scheduler = null; try { scheduler = StdSchedulerFactory.getDefaultScheduler(); } catch (SchedulerException e) { log.error("调度器创建失败!", e); throw e; } try { scheduler.start(); } catch (SchedulerException e) { log.error("调度器启动失败!", e); throw e; } log.info("调度器启动时间:" + new SimpleDateFormat("yyyy.MM.dd HH:mm:ss").format(new Date())); scheduleJob(scheduler, PrintInfoJob.class); } /** * 配置作业,创建触发器 * @param scheduler 调度器 * @param jobClass 作业所在的类 * @throws SchedulerException */ public void scheduleJob(Scheduler scheduler, Class jobClass) throws SchedulerException { WeeklyCalendar weeklyCalendar = new WeeklyCalendar(); // 排除每个星期的周三四五,此时可以设置一个星期只排除一天 boolean[] excludedDays = new boolean[8]; // 注意index从1开始,Calendar.SUNDAY =1,所以个数是8 excludedDays[Calendar.MONDAY] = false; // 周一 excludedDays[Calendar.TUESDAY] = false; // 周二 excludedDays[Calendar.WEDNESDAY] = true; // 周三 true表示排除 excludedDays[Calendar.THURSDAY] = true; // 周四 excludedDays[Calendar.FRIDAY] = true; // 周五 excludedDays[Calendar.SATURDAY] = false; // 周六 excludedDays[Calendar.SUNDAY] = false; // 周七 weeklyCalendar.setDaysExcluded(excludedDays); try { scheduler.addCalendar("bankHolidays", weeklyCalendar, true, true); // 两个true分别表示替换和更新原来的WeeklyCalendar } catch (SchedulerException e) { log.error("为调度器关联annualCalendar失败!", e); throw e; } Trigger printInfoTrigger = TriggerUtils.makeImmediateTrigger("printInfoTrigger", SimpleTrigger.REPEAT_INDEFINITELY, 10000); printInfoTrigger.setCalendarName("bankHolidays"); // 关联触发器和calendar JobDetail printInfoJobDetail = new JobDetail("printInfoJobDetail", Scheduler.DEFAULT_GROUP, jobClass); try { scheduler.scheduleJob(printInfoJobDetail, printInfoTrigger); // 关联触发器和调度器 } catch (SchedulerException e) { log.error("关联触发器printInfoTrigger和调度器scheduler失败!", e); throw e; } } public static void main(String[] args) throws SchedulerException { Listing_4_9 listing_4_9 = new Listing_4_9(); listing_4_9.startScheduler(); } }
相关文章推荐
- 默认排除每周周六日
- 排除每年中的几天,AnnualCalendar
- 排除每周的某一天
- linux复制文件夹到另一个文件夹并排除一个文件夹
- HTC VIVE装置故障排除方法
- 几天时间学习了MYSQL数据库在window上的备份与还原
- ssh 无密码登录,搞了我几天!
- 算法分析课每周练习 Find Median from Data Stream
- 每周荐书:MyBatis、并行编程、Ansible(评论送书)
- RHEL引导过程控制和故障排除
- 微信小程序常见错误及基本排除方法
- Turbo Linux中Web服务器apache的故障排除过程
- Quartz Cron表达式 每周、每月执行一次
- 后面几天的计划
- web.xml中DispatcherServlet排除静态资源的拦截 / 图片上传到了WEB-INF目录下,应该如何显示?
- visual studio.net已检测到web服务器运行的不是asp.net1.1版"故障的排除
- Maven 依赖范围、依赖传递、排除依赖
- 20050430:几天没写了,这怎么行
- 每周时间安排
- 封包了,断断续续做了几天了。WatermarkMaker正式发布。