我有一个非持久性的编程计时器。执行时间超过600秒时,@Timeout
方法将启动两次。但是如果执行时间小于600秒,则只执行一次。(这就是我需要的)。
有人知道发生了什么吗?
如何才能解决这个问题,以便定时器只执行一次?
问候
答案 0 :(得分:0)
我已经找到一种解决方法。将注释@timeout放入注释@TransactionAttribute和@TransactionTimeout:
@Timeout
@TransactionAttribute (TransactionAttributeType.REQUIRES_NEW)
@TransactionTimeout (value = 1, unit = TimeUnit.HOURS)
要将这些依赖项放入pom中
<dependency>
<groupId> org.jboss.ejb3 </ groupId>
<artifactId> jboss-ejb3-ext-api </ artifactId>
<version> 2.2.0.Final </ version>
</ dependency>
我为您解决以下问题: wildfly 10 final: Error invoking timeout for timer(用于@schedule,但适用相同的内容)。