クラス SynchronizedItemStreamReader<T>

java.lang.ObjectSE
org.springframework.batch.item.support.SynchronizedItemStreamReader<T>
型パラメーター:
T - 読み込まれるオブジェクトの型
実装されているすべてのインターフェース:
ItemReader<T>ItemStreamItemStreamReader<T>org.springframework.beans.factory.InitializingBean

public class SynchronizedItemStreamReader<T> extends ObjectSE implements ItemStreamReader<T>, org.springframework.beans.factory.InitializingBean
これは、同期された ItemReader.read() メソッドを使用した単純な ItemStreamReader デコレータです。これにより、非スレッドセーフの ItemReader がスレッドセーフになります。

ただし、アイテムの再処理に問題がある場合、これを使用するとジョブを再開できなくなります。

このクラスの背景となる動機は次のとおりです: https://stackoverflow.com/a/20002493/2910265

導入:
3.0.4
作成者:
Matthew Ouyang, Mahmoud Ben Hassine
  • コンストラクターの詳細

    • SynchronizedItemStreamReader

      public SynchronizedItemStreamReader()
  • メソッドの詳細

    • setDelegate

      public void setDelegate(ItemStreamReader<T> delegate)
    • read

      @Nullable public T read() throws ExceptionSE
      これは、delegate の読み取りメソッドに委譲します
      次で指定:
      インターフェース ItemReader<T>read 
      戻り値:
      T 処理するアイテム、またはデータソースが使い果たされた場合は null 
      例外:
      ParseException - 現在のレコードの解析に問題がある場合 (しかし、次のものはまだ有効かもしれません)
      NonTransientResourceException - 基礎となるリソースに致命的な例外がある場合。この例外をスローした後、実装は後続の read 呼び出しから null を返すように努める必要があります。
      UnexpectedInputException - 入力データに未分類の問題がある場合。潜在的に一時的であると想定します。後続の読み取り呼び出しは成功する可能性があります。
      ExceptionSE - 特定のエラーがない場合。
    • close

      public void close()
      インターフェースからコピーされた説明: ItemStream
      ストリームの動作にリソースが必要な場合、ここで破棄する必要があります。このメソッドが呼び出されると、他のすべてのメソッド(open を除く)は例外をスローする場合があります。
      次で指定:
      インターフェース ItemStreamclose 
    • open

      public void open(ExecutionContext executionContext)
      インターフェースからコピーされた説明: ItemStream
      提供された ExecutionContext のストリームを開きます。
      次で指定:
      インターフェース ItemStreamopen 
      パラメーター:
      executionContext - 現在のステップの ExecutionContext。再起動時のステップの最後の実行からの executionContext になります。
    • update

      public void update(ExecutionContext executionContext)
      インターフェースからコピーされた説明: ItemStream
      オープン中に提供された実行コンテキストが保存されようとしていることを示します。状態が残っているが、コンテキストに入れられていない場合は、ここに追加する必要があります。
      次で指定:
      インターフェース ItemStreamupdate 
      パラメーター:
      executionContext - 更新される
    • afterPropertiesSet

      public void afterPropertiesSet() throws ExceptionSE
      次で指定:
      インターフェース org.springframework.beans.factory.InitializingBeanafterPropertiesSet 
      例外:
      ExceptionSE