Я использую библиотеку java.Util.Timer для расписания моей работы.Java Timer не работает на сервере Websphere
Я хочу позвонить своей функции в 22:00 каждое воскресенье. Так что мой код, как:
rspServer = new RSPServer();
Calendar scheduleStartTime = Calendar.getInstance();
scheduleStartTime.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
scheduleStartTime.set(Calendar.HOUR_OF_DAY, 22);
scheduleStartTime.set(Calendar.MINUTE, 0);
scheduleStartTime.set(Calendar.SECOND, 0);
scheduleStartTime.set(Calendar.MILLISECOND, 0);
rspServer.startScheduler(Class.forName("xx.xx.xx.xx.RSP.RSPServer"),rspServer, "PopulateModels", scheduleStartTime, 7 * 24 * 60 * 60 * 1000);
я разворачивал этот код и перезапустить сервер WEBSPHERE в четверг. Я ожидал, что эта функция начнется в воскресенье. Но он не срабатывал. На сервере нет ошибок или ошибок.
Я попробовал
Я обновил время начала в понедельник 11:00. И перезапустил сервер в 10:40 утра в понедельник. Через 20 минут моя функция работала в 11:00, как и ожидалось. Но если я перезапущу свой сервер в четверг и установил начальное время, как в воскресенье, оно не срабатывало.
Есть ли какое-то время бездействия или время на сервере webshere? Что может быть причиной этого?
вот моя startScheduler функция
public void startScheduler(final Class<?> serverClass, final Object server,
final String methodName, Calendar _startAfterTime, int _repeatAfterTime) {
timer = new Timer();
TimerTask timerTask = new TimerTask() {
private java.lang.reflect.Method method;
@Override
public void run() {
try {
method = serverClass.getMethod(methodName);
method.invoke(server);
} catch (Exception e) {
// TODO Auto-generated catch block
System.err.println("Error!");
e.printStackTrace();
}
}
};
timer.schedule(timerTask, _startAfterTime.getTime(), _repeatAfterTime);
}
Вы не ссылаясь на поведение [ 'java.util.Calendar'] (http://docs.oracle.com/javase/8/docs/api/java /util/Calendar.html)? Это не имеет ничего общего с [WebSphere] (https://en.wikipedia.org/wiki/IBM_WebSphere), поэтому его упоминание в этом ответе путается. Также поведение «Календарь» зависит от текущего по умолчанию JVM «Локаль». Итак, ваше первое предложение о «настройках по умолчанию java time, неделя начинается с воскресенья» является сбивающим с толку, поскольку нет никакой конфигурации по умолчанию. Или я неправильно понял? Я предлагаю отредактировать ответ, чтобы уточнить. –
Я хочу подчеркнуть, что существует разница между временем java локального компьютера и временем Java-сервера. Причина этого в моем вопросе. Извините за мои условия. – neverwinter