Java EE 7自动计时器(EJB计时器)不适用于WildFly 8.1.0
我正在按照使用定时器服务教程来构建一个简单的计划执行。 尝试自动方法并使用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”,这可能会非常恼人,并且会强制您设置这些值。