特定のフォルダーのファイルを非同期的に処理するジョブを取得したSpring Batch管理プロジェクトを使用しています。現在、関連するジョブパラメーターを渡すことにより、バッチ管理UIを介して実行しています。
現在、ファイル インバウンド チャネル アダプターを使用して、このプロセスを自動化しようとしています。ファイルを受信するたびにバッチ ジョブを呼び出すサービス アクティベーターを構成しました。最初のファイル アップロード ジョブが完了したら、別のバッチ ジョブを呼び出すという新しい要件があります。これを行うために、最初のサービス アクティベーターの出力チャネルを使用する別のサービス アクティベーターを作成しました。ただし、バッチ ジョブは非同期で実行されるため、次のバッチ ジョブがすぐに実行されます。最初のバッチ ジョブが完了するまで 2 番目のバッチ ジョブを待機する方法はありますか。
私の現在の構成は
<file:inbound-channel-adapter id="filesIn" directory="file:${input.directory}" filename-pattern="*.csv" prevent-duplicates="true">
<integration:poller id="poller" fixed-delay="10000"/>
</file:inbound-channel-adapter>
<integration:channel id="statusChannel"/>
<integration:service-activator input-channel="filesIn" output-channel="statusChannel"
ref="handler" method="process"/>
<bean id="handler" class="AnalysisMessageProcessor">
<property name="job" ref="A-importGlobalSettingsDataJob"/> <!--1st job -->
<property name="requestHandler" ref="jobMessageHandler"/>
</bean>
<bean id="jobMessageHandler" class="org.springframework.batch.integration.launch.JobLaunchingMessageHandler">
<constructor-arg ref="jobLauncher" /> <!--spring batch admins async job launcher -->
</bean>
<integration:service-activator input-channel="statusChannel" ref="jobHandler" method="process"/>
<bean id="jobHandler" class="JobHandler"> <!--This Job handler should get invoked only after the 1st batch job is completed. Currently I am just printing the exit status code of 1st job-->
どんな助けでも大歓迎です。