A Schedule Library using Quartz

最佳实践

2009年10月10日 11:00 播放2小时 => 一次性触发

从2009年10月10日起 每天 11:00 播放2小时 => 每天触发

从2009年10月10日起 每周三 11:00 播放2小时 => 每周触发

从2009年10月10日起 每年十月和五月的一号 11:00 播放2小时 => 每月触发

功能

这是一个对于排期应用的封装类库,使用Quartz进行排期时间计算,在Quartz的基础上添加了排期Start和Stop的触发逻辑

  • 排期规则支持一次性触发、每周触发、每月触发。
  • 支持多条排期的应用,可以为每个排期设置优先级,根据优先级将重叠排期进行切割。
  • 排期的执行不支持跨天(即Start和Stop的触发时间必定在同一天)。

类结构说明

  • ScheduleController: 排期类库的核心入口;负责启动和停止多条排期,触发OnStart和OnStop事件
  • PlaySchedule: 排期数据;保存排期名称、排期优先级、排期规则、排期执行的内容、排期执行的持续时间
  • ScheduleData: 排期规则;分为以下三种规则
    • OnceScheduleData: 一次性排期;包含一个开始时间
    • WeeklyScheduleData: 每周排期;包含开始日期、周数列表、到天后触发的时间
    • MonthlyScheduleData: 每月排期;包含开始日期、月数列表、月中的哪一天、到天后触发的时间

网址

http://www.cnblogs.com/shanyou/archive/2007/08/25/QuartzNETtutorial.html

http://quartznet.sourceforge.net/

http://www.quartz-scheduler.org/

posted @ 2012-10-09 23:01  CanMusic  阅读(161)  评论(0编辑  收藏  举报