イージーバッチジョブライター

イージーバッチライターの役割は、シンクにレコードを書き込むことです

サポートされるデータシンク

  • 図2を参照して
    公式のフォームから

     

     

注意とヒント

  • JdbcRecordWriterでデータベーストランザクションを処理します。各バッチの後に、トランザクションが作成され、コミット/ロールバックされます。
  • JpaRecordWriterは、レコードではなくJavaオブジェクトを入力として想定しています。レコードを渡す前に、レコードをドメインオブジェクトタイプのJpaRecordWriterに必ずマップしてください。JpaRecordWriterでデータベーストランザクションを処理します。各バッチの後に、トランザクションが作成され、コミット/ロールバックされます。
  • HibernateRecordWriterは、レコードではなくJavaオブジェクトを入力として想定しています。レコードを渡す前に、そのレコードをドメインオブジェクトタイプのHibernateRecordWriterに必ずマップしてください。作成者はデータベーストランザクションを処理します。各バッチの後に、トランザクションが作成され、コミット/ロールバックされます。

データ書き込みエラーの処理

場合によっては、データレシーバーが一時的に使用できないことがあります。この場合、レコードライターはデータを書き込むことができず、ジョブは中止されます。RetryableRecordWriterを使用すると、デリゲート再試行RecordWriterを使用してデータをRetryPolicyに書き込むことができます。

 
ジョブジョブ= 新しいJobBuilder()
    。ライター(新しいRetryableRecordWriter(unreliableDataSinkWriter、新しいRetryPolicy(5、1、SECONDS)))
    。build();

これにより、ライターは最大5回再試行し、各試行の間に1秒待機します。5回試行してもデータレシーバーにアクセスできない場合、ジョブは中止されます。

バッチスキャン

アクティブ化後、バッチ書き込みプロセス中に例外が発生すると、バッチスキャンが開始されます。レコードをシングルトンとして1つずつ書き込むようにしてください。このようにして、最初の失敗したバッチでジョブ全体を失敗させるのではなく、誤ったレコードをスキップしてジョブを実行し続けることができます。
この機能はトランザクションライターと組み合わせて使用​​され、失敗した書き込み操作を副作用なく正常に実行します。ただし、既知の制限として、非トランザクションライターで使用すると、アイテムが2回書き込まれることがあります(たとえば、ファイルライターの場合、例外が発生する前に出力ストリームが更新されます)。これを回避するには、BatchListener#onBatchWritingExceptionメソッドで手動のロールバック操作を実行する必要があります。

参考文献

https://github.com/j-easy/easy-batch/wiki/writers

おすすめ

転載: www.cnblogs.com/rongfengliang/p/12730111.html