这是我的代码
while (true) {
try {
Thread.sleep(5 * 60 * 1000);
processData();// data processing job
} catch (InterruptedException e) {
SystemMessageBillPay.getInstance().writeMessage("ERROR: CEB.run() - " + e.getMessage());
} catch (NumberFormatException e) {
SystemMessageBillPay.getInstance().writeMessage("ERROR: CEB.run() - " + e.getMessage());
}
}
对于以下代码:
"Thread.sleep(5 * 60 * 1000);"
代码检查器会发出警告:
"在循环中调用Thread.sleep可能会导致性能问题"
为了避免这个警告,应该使用以下代码:
"TimeUnit.MINUTES.sleep(5);"
这个代码不仅更易读,而且更加高效。
ScheduledExecutorService
来安排任务每5分钟执行一次。 - Jespersleep()
被中断,processData()
就不会被调用。如果这种情况经常发生,你的工作就无法完成。而最好的答案取决于你想让你的代码做什么。每五分钟准确运行而没有偏差?大约每五分钟运行,有时更快? - Andrew Henle