前一个提取完成后,如何在计时器线程上运行下一个提取?

时间:2019-01-29 12:26:47

标签: java multithreading timertask java-threads

我有一个Java应用程序,当应用程序启动时,计时器线程开始运行并使用api更新应用程序。每隔一分钟触发一次该线程。 但是,该程序需要大约15分钟的时间,才能在用户首次登录时从应用程序中获取所有记录。

一旦第一次登录中的所有条目都到达,线程将继续照常工作并保留新记录。

由于来自用户首次登录系统的数据很大,因此将在15分钟内处理数据。这意味着它将在15分钟内触发15次。我保护了Thread与synceize关键字一起工作的方法。 我还需要做其他事情。

在上一次获取Thread之后,另一个获取将运行。

逻辑有误吗?

我的Timer线程代码如下所示;

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);

0 个答案:

没有答案