今回は、単一のファイルの処理のみを行います。configs;}タスクが複数の場合でも、このメソッドの実装は通常、非常にシンプルです。必要なことは、入力タスクの数を判定して、分配するだけです。入力タスク数の確認には、データの取得元のリモートサービスにアクセスする必要があります。いくつかのユーティリティが提供されています。このシンプルな例では、動的な入力には対応していないことに注意してください。タスク構成の更新をトリガーする方法については、次のセクションの解説を参照してください。実装について説明します。小規模なクラスですが、このガイドですべてを説明すると長くなりすぎます。実装の説明をするうえで、ここで使用するヘルパーメソッドについては詳しく解説しませんが、ソースコードを参照することで全体を確認できます。クラスから継承するクラスを作成する必要があります。標準のライフサイクルメソッドも必要です。}これらは少し単純化されていますが、これらのメソッドは比較的シンプルなもので、実行する必要があるのは、リソースの割り当てと解放だけであることを示しています。メソッドでは、前回のオフセットからの再開処理は行われないことです。これについては、後のセクションで説明します。メソッドが同期されていることです。専用のスレッドが割り当てられるので、ブロックが無期限に続く可能性があり、ワーカー内の別のスレッドからの呼び出しで停止する必要があるためです。次に、タスクの中心的な機能を実装します。null;}ここでも、細部は省略されていますが、重要な手順は確認できます。メソッドが繰り返し呼び出され、呼び出しのたびに、ループしてファイルからレコードを読み取ります。行読み取るごとに、ファイルのオフセットも追跡します。つの情報が含まれます。コンストラクターの別のバリアントでは、特定の出力パーティションとキーを含めることもできます。インターフェイスが使用されており、データが存在しない場合はスリープします。各タスクに専用のスレッドが用意されるため、これで問題ありません。インターフェイスに準拠する必要がありますが、実装方法にはかなりの柔軟性があります。