簡體   English   中英

如何在另一個作業中進行異步Spring Batch作業

[英]How to make an asynchronous spring batch job with in another job

我正在嘗試在另一個作業中創建一個Spring批處理異步作業。 說Job-1應該完成,而Job-2應該執行。 但是問題是Job-1正在等待Job-2完成,這是我不想要的。 我也使用過JobStep,但是它是以同步方式發生的,沒有幫助。 有人可以幫助我如何在Job-1不等Job-2完成之前異步使用它嗎? 下面的示例XML代碼段

<bean id="taskExecutorAsync" class="org.springframework.core.task.SimpleAsyncTaskExecutor" />
<bean id="jobLauncherAsync" class="org.springframework.batch.core.launch.support.SimpleJobLauncher">
        <property name="jobRepository" ref="jobRepository" />
        <property name="taskExecutor" ref="taskExecutorAsync" />
</bean>

<bean id="CreationProcess" class="test.CreationProcess">
        <property name="jobLauncher" ref="jobLauncherAsync" />
        <property name="jobRepository" ref="jobRepository" />
        <property name="jobExplorer" ref="jobExplorer" />           
</bean>

謝謝

您可以使用SimpleAsyncTaskExecutor執行程序來避免阻塞。

我試圖創建一個單獨的線程,返回並新線程更新了詳細信息。 無法在另一個作業中創建新的異步Spring Batch作業。

簡而言之,您不能使用JobStep 原因是因為Job是一個狀態機,每個Step作為一個狀態。 為了使Job過渡到下一個狀態(在您的用例中又完成),當前狀態(您的子作業)需要完成。

您可以從其他作業啟動作業,但要這樣做,您需要編寫Tasklet以在新線程上啟動作業(使用TaskExecutor )並立即返回。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM