简短版本: 如果你必须每分钟保存当前日期和时间,覆盖现有条目你会怎么做?
将其写入文本文件,数据库或第三个选项?可能还有什么是最佳实践。
我的方案是我想知道,在应用程序启动时,应用程序上次运行的时间是什么时候。
长版:
我有一个性能问题,也许还有正确的编码风格。
我有一个应用程序可以跟踪食物库存,当有些东西变得陈旧并且必须被移除时。 每分钟运行一次时间任务,检查库存中的当前项目,以及它们是否超出了它们被认为是陈旧的日期和时间。
问题是,如果应用程序关闭并重新启动,则不会检查停机期间失效的项目。
重复方法的代码
runeveryminute = new TimerTask() {
@Override
public void run() {
for (Item i : lager.getAllItems) {
if (i.getMinutesTillStale == 0) {
JOptionPane.showConfirmDialog(MainFrame.this,"WARNING",
"Alarm",
JOptionPane.OK_CANCEL_OPTION);
}
}
}
}
};
我真的不同意这种检查某些事情是否陈旧的方法,但这是一个学校项目所以它并不重要。
我在大型机上添加了一个窗口监听器,但我不确定我是否可以依赖它来捕捉意外崩溃,如电源故障。
答案 0 :(得分:0)
这取决于i.getMinutesTillStale
的定义方式。
如果物品在停机期间失效,getMinutesTillStale
会给出负值吗?
然后,您可以将条件更改为i.getMinutesTillStale <= 0
。
建议:
您是否将项目信息存储在数据库中?
例如,itemId
,datestored
,expiryperiod(or dateofExpiry)
等记录
然后,您可以使用计时器时间作为输入编写存储过程或查询。
它将检查所有已过期的项目并向您发送这些项目的列表。
如果有帮助,请告诉我。