我遵循使用定时器服务教程来构建一个简单的计划执行。尝试自动方法并使用WildFly 8.1.0 Final。
会话Bean
@Singleton
@Startup
public class HelloJob {
private static final Logger logger = Logger.getLogger(HelloJob.class);
public HelloJob() {
logger.error(">>> Hello Job Created.");
}
@Schedule(second="*")
public void sayHello() {
logger.error(">>> Server Hello!");
}
}
在部署时,正确地实例化了类,打印了>>> Hello Job Created.
消息,但是从未调用方法sayHello()
。
根据教程,@Schedule(second="*")
意味着它应该每秒执行一次。
将属性设置为星号(*)代表全部属性允许的值。
也只有有状态会话bean不允许定时器,我使用的是单例,它也在示例中使用。
企业bean容器的定时器服务使您能够为所有类型的企业bean调度定时通知,除了对于有状态会话bean。
使用@Schedule(second="*", minute="*", hour="*")
小时和分钟的默认值是"0",这可能非常令人恼火,并有效地迫使您设置这些