2

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

将其写入文本文件、数据库或第三个选项?并且可能会被认为是最佳实践。

我的场景是我想知道,在应用程序启动时,应用程序最后一次运行是什么时候。

长版:

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

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

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

重复方法的代码

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

我真的不同意这种检查是否过时的方式,但这是一个学校项目,所以它并不那么重要。

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

4

1 回答 1

0

这取决于如何i.getMinutesTillStale定义。如果项目在停机期间过时,会getMinutesTillStale给出负值吗?然后您可以将条件更改为i.getMinutesTillStale <= 0

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

让我知道这是否有帮助。

于 2012-06-13T13:30:49.940 回答