java - 上一次提取完成后如何在计时器线程上运行下一次提取?
问题描述
我有一个 java 应用程序。当应用程序启动时,计时器线程开始运行并使用 api 更新应用程序。该线程每分钟触发一次。但是当用户第一次登录时,该程序需要大约 15 分钟才能从应用程序中获取所有记录。
一旦第一次登录中的所有条目都到达,该线程将继续照常工作并保持新记录的出现。
由于用户第一次登录系统的数据量很大,因此数据处理时间为 15 分钟。这意味着它将在 15 分钟内触发 15 次。我已经保护了 Thread 使用 synchronize 关键字工作的方法。我还有其他事情要做。
在上一次 fetch 线程之后,另一个 fetch 运行。
有没有逻辑错误。
我的 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);