Apache Tomee中的EJB-3.1 @Startup和@Schedule anotation用于定时器执行

ryk*_*han 6 schedule quartz-scheduler java-ee-6 ejb-3.1 apache-tomee

我有以下代码在Apache-tomee上运行,我使用eclipse进行编码,我想在应用程序启动时使用@Schedule注释运行我的简单调度作业.

@Startup
@Singleton
public class ScheduleEJB {
    private static int count = 0;
    @Schedule(second="*/10", minute="*", hour="*", info="MyTimer")
    public void execute() {
       System.out.println("its running count..."+count);
       count++;
    }
}
Run Code Online (Sandbox Code Playgroud)

当我在Tomee上部署此代码时,它会让我听到以下消息并且无法在启动时自动运行我的调度方法execute(),因为此代码在glassfish中工作正常,但我不会使用它或者是jboss的glassfish.

2012年12月21日上午9:59:45 org.quartz.impl.StdSchedulerFactory实例化
INFO:使用ThreadExecutor的默认实现
2012年12月21日上午9:59:45 org.quartz.core.SchedulerSignalerImpl
INFO:类型的初始化调度程序信号器: class org.quartz.core.SchedulerSignalerImpl
2012年12月21日上午9:59:45 org.quartz.core.QuartzScheduler
信息:Quartz Scheduler v.2.1.6创建.
2012年12月21日上午9:59:45 org.quartz.simpl.RAMJobStore初始化
INFO:RAMJobStore已初始化.
2012年12月21日上午9:59:45 org.quartz.core.QuartzScheduler初始化
INFO:调度程序元数据:Quartz调度程序(v2.1.6)'OpenEJB-TimerService-Scheduler'与instanceId'OpenEJB' 调度程序类:'org. quartz.core.QuartzScheduler' - 在本地运行. 没有开始. 目前处于待机模式. 执行的作业数:0 使用线程池'org.apache.openejb.core.timer.DefaultTimerThreadPoolAdapter' - 带0个线程. 使用job-store'org.quartz.simpl.RAMJobStore' - 它不支持持久性.并没有聚集. 2012年12月21日上午9:59:45 org.quartz.impl.StdSchedulerFactory实例化 INFO:从外部提供的属性实例初始化的Quartz调度程序'OpenEJB-TimerService-Scheduler'. 2012年12月21日上午9:59:45 org.quartz.impl.StdSchedulerFactory实例化 INFO:Quartz调度程序版本:2.1.6 2012年12月21日上午9:59:45 org.quartz.core.QuartzScheduler启动 INFO:Scheduler OpenEJB- TimerService-Scheduler _ $ _ OpenEJB启动. 2012年12月21日上午9:59:45 org.apache.openejb.assembler.classic.Assembler createApplication INFO:创建Ejb (deployment-id = ScheduleEJB,ejb-name = ScheduleEJB,container = My Singleton Container) 2012年12月21日9 :59:45 AM org.apache.openejb.assembler.classic.Assembler createApplication INFO:Started Ejb (deployment-id = ScheduleEJB,ejb-name = ScheduleEJB,container = My Singleton Container)
















小智 1

您是否已经浏览过 TomEE 示例页面?实际运行中有一个类似的例子。

http://openejb.apache.org/examples-trunk/schedule-methods/README.html

也许你可以尝试一下,看看与你的实际有什么不同。