1、Quartz简介
Quartz作为一个优秀的开源调度框架,
Quartz 具有以下特点:
强大的调度功能,
支持立即调度、定时调度、周期调度、并发调度; 灵活的应用方式,
支持job间通过listener实现依赖调度,可以方便的进行调度组合
2、用Quartz做定时任务调度
需求是这样的,以整点时间戳为文件名,每隔一小时创建一个文件,在这一小时内不断的写文件,达到下一小时关闭当前文件句柄和流,并以当前整点小时创建新文件!
写一个单例服务类,服务类两个成员变量,一个是文件句柄,一个是流,可get可set。把它作为spring的一个bean,在quartz和你的读写线程都注入这个bean。quartz里面用set来改句柄(百度上有很好的解释)和流,读写线程用get来读
3、如何监控Quartz的job执行状态:运行中,暂停中,等待中?
目前我能想到的解决办法是通过往表(新建一个操作日志表)里插入日志的形式:
运行中:通过JobListener监听器来实现运行时更改表信息
暂停中:调用scheduler.pauseTrigger()方法时,更改表中job信息
等待中:新添加的job默认给其等待中的状态,也是更改表中的job信息
但是上面这种形式的麻烦之处是得频繁的往表里插入数据。