我有一个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);