Quartz的核心接口有:
- Scheduler – 与scheduler交互的主要API;
- Job – 通过scheduler执行任务,任务类需要实现的接口
- JobDetail – 定义Job的实例;
- Trigger – 触发Job的执行;
- JobBuilder – 定义和创建JobDetail实例的接口;
- TriggerBuilder – 定义和创建Trigger实例的接口;
Job
在Quartz中,每次Scheduler执行Job时,在调用其execute()方法之前,它需要先根据JobDetail提供的Job类型创建一个Job class的实例,在任务执行完以后,Job class的实例会被丢弃,Jvm的垃圾回收器会将它们回收
因此编写Job的具体实现时,需要注意:
(1) 它必须具有一个无参数的构造函数;
(2) 它不应该有静态数据类型,因为每次Job执行完以后便被回收,因此在多次执行时静态数据没法被维护。
JobDataMap 在创建job的时候,给job在运行时提供额外的属性配置
可以给job 的监听器读取job的运行时设置的JobDataMap数据,监听job的状态变化