Помогите Запуск действия по таймеру

Korvinius

Активный участник
Пользователь
Баллы
88
Здравствуйте, подскажите, мне нужно выполнять определенное действие каждый час, я знаю, сейчас вы мне скажете "шедулеры в помощь", полностью согласен, только я хочу уточнить один момент. Действие нужно выполнять, допустим каждый час в 00 минут, 00 секунд, а если сервер был перегружен в 17:32:18, то, как сделать, чтобы действие выполнялось именно в нужное мне время?
 
При запуске плагина (А) вычислять число тиков, через которые тебе нужно совершить действие. Если целевой тик дальше, чем через минут 10, то каждые пять минут перезапускать шедулером код (А) с целью корректировки (на больших временах из-за скачков TPS время может скакать). Если меньше, то запланировать шедулером же уже само по себе действие.
long тиковДоСобытия = 20 * (искомоеВремя — текущееВремя); // в секундах.
 
Реализация на полстранички всего :)
 
Реализация на полстранички всего :)
Как то забросил эту идею, но сегодня вспомнил и реализовал таким образом, может кому то пригодится, как узнать сколько минут осталось до окончания текущего часа:
Java:
    public int getMinToHourNull() {
        int i = 0;
        Date d = new Date();
        SimpleDateFormat min = new SimpleDateFormat("mm");
        try {
            i = Integer.parseInt(min.format(d).toString());
        } catch (NumberFormatException e) {
        }
        return 60-i;
    }
 
Последнее редактирование:
Назад
Верх