一定間隔でテキストを送信するアプリケーションを設計しています。この間、アプリケーションはデータを収集し、データを送信する前に一時的にバッファに格納します (そしてデータベースの内容を消去します)。
それらをメモリに保存しないようにしています。
現在、H2組み込みデータベースの使用を検討しています。
Java でバッファの実装に通常使用するものは? プレーンテキストファイル? ログファイル?
あなたのコメントを読んだ後、あなたの問題の実装は次のようになると思います:
必要な情報をすべて収集し、それを StringBuilder に格納し、情報を送信して、最終的にデータベース内のコンテンツをクリアするトランザクション サービスを作成します。問題が発生した場合、データベースは情報を保持します。つまり、信頼できるサービスです。
複数のスレッドを使用して情報を回復している場合は、StringBuilder が同期されていないことに注意してください。そのため、ソリューションに複数のスレッドが StringBuilder で動作している場合は、クラスを内部で同期するか、StringBuffer を使用することを忘れないでください (これはスレッドセーフですが遅いことに注意してください)。
これが役立つことを願っています。
メモリ バッファを使用するかどうかは、アプリケーションのニーズによっても異なります。たとえば、アプリケーションが信頼性が高く、問題が発生してクラッシュが発生したときに回復を管理する必要がある場合、より良いアプローチはファイルを使用することであり、一部のデータがまだ処理されていない場合は回復できます。
このようなニーズには、MOM (メッセージ指向ミドルウェア) オプションもあります。このソリューションは、信頼性を含む多くの利点を提供します。ただし、信頼性が必要なく、一部のデータ交換のみが存在する場合は、MOM を使用する必要はありません。