我正在使用 JBOSS EAP 6.4。我使用 EJB @Shedule 注释在我的 ScedulerBean 中安排了一些调度程序,如下所示。这里的 ShedulerBean 依赖于 StartupBean。
@Singleton
@DependsOn("StartupBean")
public class SchedulerBean {
private Logger logger = LoggerFactory.getLogger(SchedulerBean.class);
private SchedulerInterface schedulerInterface;
@PostConstruct
public void initialize() {
// some initialization
}
@Schedule(second = "1/1", minute = "*", hour = "*",persistent = false)
public void runSchedulers() {
logger.info("EJB scheduler pulse start at : " + new Date());
try {
schedulerInterface.pulseEverySecond();
logger.info("EJB scheduler pulse end at : " + new Date());
} catch (Exception e) {
logger.error("Error in EJB scheduling : ", e);
}
}
}
但是,我在 JBOSS 部署期间反复收到以下警告。谁能告诉我解决此问题的方法?
A previous execution of timer [ShedularBean] is still in progress, skipping this overlapping scheduled execution at: [Timestamp] as timer state is IN_TIMEOUT
最佳答案
由于您每秒都在运行该任务,这意味着在安排当前任务时(当前 second-1 的)前一个计划任务仍在进行中。
因此 jboss 通知您它将跳过此执行。
关于java - JBOSS - Previos 定时器的执行仍在进行中,定时器状态为 IN_TIMEOUT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31402471/