gpt4 book ai didi

java - Jboss 7 摧毁 Singleton EJB

转载 作者:行者123 更新时间:2023-11-30 08:12:10 26 4
gpt4 key购买 nike

@Startup
@Singleton
@AccessTimeout(value = 0)
public class MyEJB {
@Schedule(dayOfWeek = "*", hour = "*", minute = "*", second = "*/20", year = "*", persistent = false, info = "MyEjb Job.................")
@AccessTimeout(value = 0)
public void execute() {
try {
lgg.debug("starting...........");
Thread.sleep(35000);
lgg.debug("ending.............");
} catch (InterruptedException e1) {
}
}

我有以下代码。我想在 20 秒后停止(销毁)当前 EJB 工作并启动另一个 Singltone EJB 实例。如何实现这一目标?

最佳答案

这是不可能的。您无法安全地强制 JVM 中的线程停止,并且 EJB 中没有中断线程的机制。您能做的最好的事情就是合作中断:在单例上调用另一个方法来通知它唤醒(即将 Thread.sleep 更改为其他内容,例如 CountDownLatch)。请注意,您需要更改默认的 @Lock@ConcurrencyManagement 以允许 Bean 可重入。

关于java - Jboss 7 摧毁 Singleton EJB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30232188/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com