【发布时间】:2020-07-23 08:52:25
【问题描述】:
我相信我在这里遇到了范围界定问题。
项目说明:
目标是处理任何传入的文件(在磁盘上),包括元数据(存储在 SQL 数据库中)。为此,我有两个小任务(FileReservation 和 FileProcessorTask),它们是总体“工人”作业中的步骤。他们等待一个事件开始他们的工作。有几个线程处理并发作业。 FileReservation tasklet 使用作业上下文将 fileId 发送到 FileProcessorTask。
一个单独的作业(无限期运行)检查数据库中的新文件元数据记录,并在发现新记录时使用已发布的事件“唤醒” FileReservationTask 小任务。
使用当前配置,当 FileReservation 小任务被唤醒时,作业的第二步可能会收到空消息。
如果您取消注释 BatchConfiguration 中的代码,您会发现当我们有单独的 bean 实例时它可以工作。
非常感谢任何指针。
谢谢!
【问题讨论】:
标签: spring spring-batch spring-batch-tasklet