0

大まかな要件は次のとおりです。データを読み取り、検証のために外部サービスに送信し、出力テーブルの検証応答を更新する必要がある入力テーブル (INPUT) があります。さまざまなサンプルに基づいて、これを実装しました。

ただし、入力テーブルはフラット構造です。つまり、例: テーブル内の学生の複数の試験結果を含む学生テーブル。検証のために送信するときは、生徒のすべての記録を取得して検証のために送信する必要があります。もう 1 つの問題は並列処理です。外部サービスにアクセスするとネットワーク遅延が発生するため、読み取り、処理、書き込み、または処理と書き込みを並列処理したいと考えています。

これを行うことができる実行可能なリーダー、ライター、およびプロセッサについて知りたいです。

私を助けてください。

4

1 に答える 1

0

テーブルからデータを読み取るリーダーを作成することをお勧めします。生成された 1 つの要素 (以降の説明では E という名前) は、検証サービスに送信できなければなりません。

次に、前のパラメータ E を持つプロセッサを作成します。検証サービスを呼び出します。検証の結果は、プロセッサ (O という名前) の出力になります。

最後に、O をパラメーターとして取り、最終データをデータベースに書き込む役割を担う Writer を作成します。

ThreadPoolTask​​Executorを使用して、Spring 構成を介して並列処理が行われます。重要な部分は、Reader、Processor、Writer をスレッドセーフな方法で作成することです。

より良いパフォーマンスを得るには、パラメーターcommit-interval (Writer で) も確認する必要があります。Hibernate を使用している場合は、そのバッチ容量を確認してください (通常、25 ~ 30 リクエストのバッチ挿入/更新を行うことで最高のパフォーマンスが得られます)。

于 2012-07-30T20:10:20.863 に答える