Stworzyłem funkcję doWork()
który jest zaplanowane codziennie o 1:00, funkcja jest następująca:Java timera Usługa działa wielokrotnie
@Schedule(hour = "1", persistent = false)
public void doWork()
{
System.out.println("Starting .....\nTIME: " + System.currentTimeMillis());
System.out.println("this : " + this);
//Some code here, if-conditions and try/catch blocks. No loops
System.out.println("Exiting .....\nTIME: " + System.currentTimeMillis());
System.out.println("this : " + this);
}
Problemem jest to, że funkcja ta działa więcej niż jeden raz , nie zgodnie z planem.
Po utworzeniu go działał dokładnie tak, jak powinien (codziennie dokładnie o 1:00:00). Kilka dni później zaczęło działać o godzinie 1:03:00 (co nie ma sensu, ponieważ nie ma w nim miejsca i nie ma przestojów na serwerze). Po tym funkcja zaczęła działać więcej niż jeden raz z bardzo krótkimi przerwami pomiędzy (różnicą sekund)
Czy ktoś wie, co może spowodować to, lub powiedz mi, co mogę zrobić, aby to naprawić?
[EDIT]: szczegóły Środowisko
Application Server: WebSphere Application Server 8.5.5
IDE: Rational Application Developer 9.1
Database Management System: IBM DB2 10.1
Który serwer aplikacji (i wersja) używasz? Może to pomóc w sprawdzeniu, czy są problemy związane z tym AS. –
W jaki sposób rejestrujesz czas uruchomienia usługi? Wynik dziennika? Czas systemowy/serwerowy? – kolossus
@ OlivierGrégoire Używam serwera WebSphere Application Server 8.5.5 –