Запланируйте задание на выполнение 3 раза в день в течение X минут, и если - PullRequest
1 голос
/ 20 февраля 2011

Ниже приведен пример кода, который я пробовал, мне нужно запускать 1 задачу в 3 разных раза по X минут каждый день, и скажем, у меня 12,17,20, и она должна работать в течение 120 минут, и она уже 12:30:00, поэтому, если я открою приложение, оно должно запустить задачу и запустить ее в течение 90 минут.

Что я здесь не так делаю и что мне нужно изменить, чтобы выполнить вышесказанное?

    // here I receive my config with the hours I need to run my task
    String[] time = Config.SCHEDULE.split(",");
    int runTimeLeft = Config.TIMELEFT;
    for (String hour : time)
    {
        Calendar calendar = Calendar.getInstance();
        calendar.set(Calendar.HOUR_OF_DAY, Integer.parseInt(hour));
        calendar.set(Calendar.MINUTE, 0);
        calendar.set(Calendar.SECOND, 0);

        long start = calendar.getTimeInMillis() - System.currentTimeMillis();
        ThreadPoolManager.getInstance().scheduleAtFixedRate(new Runnable()
        {
            public void run()
            {
                startMyTask();
            }
        }, start, 24 * 60 * 60 * 1000);
    }

1 Ответ

0 голосов
/ 20 февраля 2011

Это не совсем проблема Java ... Вам нужно проверить, больше ли текущее время (в календаре) за вычетом текущего полученного времени, чем 0, и меньше, чем 2 часа, и если это так, запустите задачу на "2 часа минус этоРАЗНИЦА ", остальное что ты написал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...