Как зарегистрировать ошибку после каждого определенного количества попыток во время сна потока?

У меня есть цикл while, который проверяет метод verifySystem, чтобы увидеть, возвращает ли он true или нет. Если он не возвращает true, он будет спать в течение 5 минут, а затем снова вызовет метод verifySystem через 5 минут, чтобы увидеть, возвращает ли он true или нет.

    while (!verifySystem(name, value)) {
        Thread.sleep(5 * 60 * 1000); // sleeping for 5 minutes
    }

Итак, предположим, что по какой-то причине этот метод не возвращает true, тогда моя программа всегда будет работать вечно.

Поэтому я думаю проверить, например, если он спит не менее 10 раз, тогда я бы зарегистрировал ошибку, используя System.out.println() на данный момент. Я буду использовать регистратор, как только интегрирую свой код.

Как бы я добавил эту логику 10-кратной проверки, и если она пробовала более 10 раз, затем зарегистрировать ошибку и сбросить счетчик. Итак, снова он начнет вызывать метод verifySystem каждые 5 минут, чтобы увидеть, возвращает ли этот метод истину или нет..

Короче говоря, он будет регистрировать ошибку после каждых 10 попыток, но после этого будет сбрасывать счетчик.


person Community    schedule 24.02.2014    source источник


Ответы (2)


Почему бы не так:

int errorCount = 0;

while (!verifySystem(name, value)) {
    if(++errorCount > 10) {
        // Log your message
        System.out.println("ERROR");
        // Reset counter
        errorCount = 0;
    }

    Thread.sleep(5 * 60 * 1000); // sleeping for 5 minutes
}

errorCount = 0;
person Misc08    schedule 24.02.2014

person    schedule
comment
Спасибо jw23 за помощь.. Теперь это имеет смысл.. Спасибо за вашу помощь.. У меня также есть еще один вопрос здесь. Посмотрим, сможешь ли ты мне помочь.. - person ; 24.02.2014