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

Programmatic Timer @Timeout executes several times

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

有人知道发生了什么事吗?

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

此致

我已经找到了修复它的方法。将注释@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