原创

Spring Batch の実行時間制限を延長する

温馨提示:
本文最后更新于 2024年04月12日,已超过 37 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我

ここで大きな問題があります。Spring Batch + TaskExecutor ではスレッドが 10 分以上実行されません。もちろん、必要に応じて、最終的にはバッチジョブに 2 時間かかります。

Yは次のようにするだけです: java -jar receip-processor-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev

そしてちょうど 10 分後: 2024-04-10T13:59:41.798-03:00 INFO 26072 --- [main] oscsupport.DefaultLifecycleProcessor : 600000 ミリのタイムアウト以内にフェーズ値 2147483647 を持つ 1 つの Bean をシャットダウンできませんでした: [taskExecutor1]

600000msは10分に相当します。

taskExecutor の構成は非常に標準的なものです。

@Bean
public TaskExecutor taskExecutor1() {
    ThreadPoolTaskExecutor taskExecutor = new ThreadPoolTaskExecutor();
    taskExecutor.setAwaitTerminationSeconds(10000);
    taskExecutor.setMaxPoolSize(10);
    taskExecutor.setQueueCapacity(25);      
    taskExecutor.setThreadNamePrefix("taskExecutor1-prueba-");
    taskExecutor.initialize();
    
    return taskExecutor;
}

しかし

Bean のタイムアウト時間をたとえば 3 時間に延長してもどうですか?

私はすでに次のことを試しました: taskExecutor.setAwaitTerminationSeconds(10000); taskExecutor.setKeepAliveSeconds(10800); いわゆる、タイムアウトを 3 時間に設定します。

正文到此结束
热门推荐
本文目录