2

短いバージョン: 現在の日付と時刻を毎分保存する必要がある場合、既存のエントリを上書きするにはどうしますか?

テキスト ファイル、データベース、または 3 番目のオプションに書き込むか。そしておそらく、何がベストプラクティスと考えられるでしょうか。

私のシナリオは、アプリケーションの起動時に、アプリケーションが最後に実行されたのはいつかを知りたいということです。

長いバージョン:

パフォーマンスの問題と、おそらく適切なコーディング スタイルの問題があります。

私は食品在庫を追跡するアプリケーションを持っています。毎分実行されているタイマー タスクがあり、現在在庫のあるアイテムをチェックし、それらが古くなったと見なされる日付と時刻を超えているかどうかをチェックします。

問題は、アプリケーションがシャットダウンして再起動すると、ダウンタイム中に古くなったアイテムがチェックされないことです。

繰り返しメソッドのコード

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 に答える