JBOSS - Предыдущее выполнение таймера все еще выполняется, состояние таймера IN_TIMEOUT
Я использую JBOSS EAP 6.4 . Я запланировал некоторые планировщики в моем ScedulerBean с помощью аннотации EJB @Shedule следующим образом. Здесь 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. Кто-нибудь может сказать мне, как решить эту проблему?
Предыдущее выполнение таймера [ShedularBean] все еще выполняется, пропуская это перекрывающееся запланированное выполнение в: [Timestamp], поскольку состояние таймера IN_TIMEOUT
1 ответ
Поскольку вы выполняете задачу каждую секунду, это означает, что предыдущая запланированная задача (из текущей секунды-1) все еще выполняется, когда текущая задача запланирована.
Следовательно, jboss сообщает вам, что пропустит это выполнение.
Обратитесь к этому для получения дополнительной информации: https://issues.jboss.org/browse/AS7-3119