Ich möchte den Zeitplan wieder mit den gleichen Einstellungen starten (alle 10 Sekunden) (javax.ejb.Timer), nachdem ich den Zeitplan aufgehört haben:Starten Sie Schedule wieder: javax.ejb.Timer
// call this remote method with the Timer info that has to be canceled
@AccessTimeout(value = 20, unit = TimeUnit.MINUTES)
public void cancelTimer(String timerInfo) {
try {
for (Timer timer : timerService.getTimers()) {
if (timerInfo.equals(timer.getInfo())) {
timer.cancel();
}
}
} catch (Exception e) {
}
}
Dies ist meine Funktion, den Zeitplan zu stoppen:
galleryScheduleExecutionService.cancelTimer("mySchedule");
hier den Zeitplan:
@Lock(LockType.READ)
@AccessTimeout(value = 20, unit = TimeUnit.MINUTES)
@Schedule(second = "*/10", minute = "*", hour = "*", persistent = false, info = "mySchedule")
public void schedule()
throws StorageAttachmentNotFoundException, IOException,
DuplicateStorageAttachmentException,
CannotDuplicateStorageAttachmentException,
ApplicationInfoNotFoundException, PrintStorageNotFoundException,
InterruptedException {
try {
// start schedule
galleryScheduleService.doStartSchedule();
} catch (Exception e) {
e.printStackTrace();
}
}
Wie kann ich den Zeitplan starten wieder mit den gleichen Einstellungen (alle 10 Sekunden ...)?
Was ist der Grund für diese Timeout-Callback-Methode? – internet
Dies ist das Ziel der createTimer-Methode. Es ist nicht möglich, einen automatischen Timer ('@ Schedule') tatsächlich neu zu starten. Daher ist es am besten, einen äquivalenten programmatischen Timer zu erstellen, der dieselbe Callback-Methode verwendet. –