调度程序日程表
调度程序提供了无状态会话 Bean 接口,该接口允许创建可由调度程序和任何 Java™ Platform, Enterprise Edition (Java EE) 应用程序使用的公共日程表。
SchedulerCalendars.ear 应用程序可用,并提供允许使用 SIMPLE 和 CRON 日程表的缺省 UserCalendar Enterprise Java Beans (EJB) 实现。虽然使用调度程序时不需要此应用程序,但是可以从任何 Java EE 应用程序进行使用。
有关 SIMPLE 和 CRON 日程表如何工作的详细信息,请参阅 com.ibm.websphere.scheduler.UserCalendar 的 API 文档。
使用调度程序指定 UserCalendar
可以使用调度程序 TaskInfo 接口的 setUserCalendar() 方法来指定 UserCalendar。该接口允许您选择 UserCalendar Bean 的 Home 接口的 Java 命名和目录接口 (JNDI) 名称。因为某些 UserCalendar Bean 实现可处理多种日程表,所以该接口也允许您选择要使用哪种日程表。可以通过调用 UserCalendar 接口的 getCalendarNames() 方法来检索有效日程表类型的列表。
BeanTaskInfo taskInfo = (BeanTaskInfo)scheduler.createTaskInfo(BeanTaskInfo.class);
String calendarVariant = "CRON";
taskInfo.setUserCalendar(null, calendarVariant);
// cron table entry
String cronTableEntry = "0 17,20,23 * ? * *";
taskInfo.setStartTimeInterval(cronTableEntry);
您可能需要直接在调度程序以外的其他 Java EE 应用程序中使用缺省 UserCalendar。在这种情况下,您可以使用 UserCalendarHome.DEFAULT_CALENDAR_JNDI_NAME 值从应用程序中查找缺省 UserCalendar。也可以将此值提供给 TaskInfo 接口的 setUserCalendar() 方法。需要确保自动或手动安装了 SchedulerCalendars.ear 系统应用程序。