程序化定时器@Timeout执行多次

时间:2018-06-13 06:30:41

标签: java timer jboss timeout

我有一个非持久性的编程计时器。执行时间超过600秒时,@Timeout方法将启动两次。但是如果执行时间小于600秒,则只执行一次。(这就是我需要的)。

有人知道发生了什么吗?

如何才能解决这个问题,以便定时器只执行一次?

问候

1 个答案:

答案 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,但适用相同的内容)。

https://developer.jboss.org/thread/248773?_sscc=t