Как запустить следующую выборку в потоке таймера после завершения предыдущей выборки? - PullRequest
0 голосов
/ 29 января 2019

У меня есть Java-приложение. Когда приложение запускается, запускается поток таймера, и приложение обновляется с помощью API.Эта тема запускается каждую минуту.Но программе требуется около 15 минут, чтобы принести все записи из приложения при первом входе пользователя в систему.

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

Поскольку данные, поступающие с первого входа пользователя в систему, велики, данные обрабатываются за 15 минут.Это означает, что он будет запущен 15 раз в течение 15 минут.Я защитил метод, в котором Thread работает с ключевым словом синхронизации.Есть еще кое-что, что мне нужно сделать.

После предыдущей выборки Thread, другой выбор для запуска.

Ошибка логики.

Код потока моего таймераблок следующим образом;

final Timer timer = new Timer("Sikke Timer Task");
    long delay = SikkeConstant.THREAD_DELAY;
    long intervalPeriod = SikkeConstant.INTERVAL_PERIOD; //60sec
    TimerTask task = new TimerTask() {
        @Override
        public void run() {
            /* if (_System.shouldThreadContinueToWork) { */
            try {
                new EchoPostHandler().jsonrpc.methods.syncTx();
            } catch (Exception e) {
                System.out.println("Error on sikke thread : " + e.getMessage());
                e.printStackTrace();
            }
            /* } */
        }
    };
    timer.scheduleAtFixedRate(task, delay, intervalPeriod);
...