EJB @Schedule 超时方法调用
EJB @Schedule timing out method call
我正在使用 EJB @Schedule
@Schedule(hour:"18")
someProcess(){
//this code takes 10 minutes
}
这是失败的,因为我的鳕鱼需要超过 3 分钟,这是我 Jboss 中的默认时间。无论如何我可以通过编程方式处理这个问题吗?我不想更改 standalone.xml 因为这会产生更大的影响。无论如何我可以告诉 JBOSS/JVM 到 运行 这只要它需要并且不会超时。
将您的代码更改为:
@TransactionAttribute(NOT_SUPPORTED)
@Schedule(hour:"18")
void someProcess(){
//this code takes 10 minutes
}
为了防止事务超时发生。
如果您需要事务性作业,请尝试 org.jboss.ejb3.annotation.TransactionTimeout
包中的 TransactionTimeout
注释。
@TransactionTimeout(unit = TimeUnit.MINUTES, value = 10)
@Schedule(year = "*", minute = "0", hour = "18", dayOfMonth = "*")
public void performHeavyJob(){
// hmmm...Heavy Code.
}
否则你可以选择@TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
我正在使用 EJB @Schedule
@Schedule(hour:"18")
someProcess(){
//this code takes 10 minutes
}
这是失败的,因为我的鳕鱼需要超过 3 分钟,这是我 Jboss 中的默认时间。无论如何我可以通过编程方式处理这个问题吗?我不想更改 standalone.xml 因为这会产生更大的影响。无论如何我可以告诉 JBOSS/JVM 到 运行 这只要它需要并且不会超时。
将您的代码更改为:
@TransactionAttribute(NOT_SUPPORTED)
@Schedule(hour:"18")
void someProcess(){
//this code takes 10 minutes
}
为了防止事务超时发生。
如果您需要事务性作业,请尝试 org.jboss.ejb3.annotation.TransactionTimeout
包中的 TransactionTimeout
注释。
@TransactionTimeout(unit = TimeUnit.MINUTES, value = 10)
@Schedule(year = "*", minute = "0", hour = "18", dayOfMonth = "*")
public void performHeavyJob(){
// hmmm...Heavy Code.
}
否则你可以选择@TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)