重复写入db或文本文件

时间:2012-06-13 13:16:43

标签: java database crash

简短版本: 如果你必须每分钟保存当前日期和时间,覆盖现有条目你会怎么做?

将其写入文本文件,数据库或第三个选项?可能还有什么是最佳实践。

我的方案是我想知道,在应用程序启动时,应用程序上次运行的时间是什么时候。

长版:

我有一个性能问题,也许还有正确的编码风格。

我有一个应用程序可以跟踪食物库存,当有些东西变得陈旧并且必须被移除时。 每分钟运行一次时间任务,检查库存中的当前项目,以及它们是否超出了它们被认为是陈旧的日期和时间。

问题是,如果应用程序关闭并重新启动,则不会检查停机期间失效的项目。

重复方法的代码

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

我真的不同意这种检查某些事情是否陈旧的方法,但这是一个学校项目所以它并不重要。

我在大型机上添加了一个窗口监听器,但我不确定我是否可以依赖它来捕捉意外崩溃,如电源故障。

1 个答案:

答案 0 :(得分:0)

这取决于i.getMinutesTillStale的定义方式。 如果物品在停机期间失效,getMinutesTillStale会给出负值吗? 然后,您可以将条件更改为i.getMinutesTillStale <= 0

建议: 您是否将项目信息存储在数据库中? 例如,itemIddatestoredexpiryperiod(or dateofExpiry)等记录 然后,您可以使用计时器时间作为输入编写存储过程或查询。 它将检查所有已过期的项目并向您发送这些项目的列表。

如果有帮助,请告诉我。