UserCalendar 接口
用户日历是一个用户定义的无状态会话 Bean,当任务需要计算与日期相关的值时会调用它。
用户日历 Bean 使用以下 Home 接口和远程接口,这些接口是使用 Rational® Application
Developer 等组装工具在部署描述符中进行定义的:
com.ibm.websphere.scheduler.UserCalendarHome com.ibm.websphere.scheduler.UserCalendar
bean 本身需要实现在远程接口中定义的 applyDelta()、validate() 和 getCalendarNames() 方法。有关详细信息,请参阅 API 文档中的“UserCalendar 接口”。
用户日历用于计算时间间隔,如任务运行之间的时间。用户日历使用一个 java.util.Date 对象、应用时间间隔字符串并返回结果 java.util.Date。
用户日历是使用 setUserCalendar() 方法在 TaskInfo 接口上设置的,并在需要计算变化量时由调度程序运行时代码调用。
TaskInfo 接口中的以下方法指定了使用用户日历进行计算的变化量字符串:
- setStartTimeInterval
- setStartByInterval
- setRepeatInterval
- 缺省用户日历
- 如果未使用 TaskInfo.setUserCalendar() 方法指定用户日历,将使用一个缺省用户日历。缺省日历允许简单变化量规范,如秒、分、时、天和月。请参阅 API 文档,以了解有关缺省日历的详细信息。缺省用户日历还为根据时间变化量计算绝对时间提供了一个类似于 CRON 的语法。
- 日历标识
- 单个用户日历可以获取多个日历的逻辑。日历说明符字符串确定了要使用的日历。例如,您可以实现一个日历 Bean 以识别时间间隔 day。但是,标识还可以识别两个日历实现:standard(用于标准日历日)和 business(用于工作日)。
- 国际化和时区
- 当存储和处理日期时,调度程序使用 java.util.Date 类。这个类在内部将时间保存为自纪元以来的毫秒数(格林威治标准时间)。因为只有将日期转换为字符串后才会把它转换为本地时间,所以调度程序会使用创建日期所在的时区。
- 编写用户日历
- 因为用户日历是无状态会话 Bean,所以可用于其他会话 Bean 的相同 Java Platform, Enterprise Edition (Java EE) 编程模型也可用于用户日历。