Spring批处理分区作业-MessageChannelPartitionHandler出现问题



我们正在从Spring Batch 2.2升级到Spring Batch 4.1。我的配置如下所示:Spring批处理分区作业聚合问题当我启动服务器时,我会看到以下日志消息(我正在尝试使用JMS响应运行(。

Caused by: org.springframework.integration.handler.support.MessagingMethodInvokerHelper$IneligibleMethodException: Found more than one parameter type candidate: [org.springframework.batch.core.partition.StepExecutionSplitter] and [org.springframework.batch.core.StepExecution]

结果是消息聚合无法按预期工作。我看到的不是所有返回消息都进入AggregatorMessageHandler中的单个MessageStore,而是进入两个MessageStore。日志记录清楚地显示了添加消息,将传入消息分为两个不同的组。(为了提高可读性,我缩短了消息的内容(。

2020-08-26 17:14:05,778 TRACE [AggregatingMessageHandler] (springbatch.taskExecutor-3) Adding message to group [ SimpleMessageGroup{groupId=4:partitioned.step, messages=[], timestamp=1598483645777, lastModified=0}]
2020-08-26 17:14:08,342 TRACE [AggregatingMessageHandler] (springbatch.taskExecutor-4) Adding message to group [ SimpleMessageGroup{groupId=4:partitioned.step, messages=[], timestamp=1598483648342, lastModified=0}]
2020-08-26 17:14:08,538 TRACE [AggregatingMessageHandler] (springbatch.taskExecutor-2) Adding message to group [ SimpleMessageGroup{groupId=4:partitioned.step, messages=[
GenericMessage [payload=StepExecution: id=51, version=3, name=partitioned.step:0, status=COMPLETED, exitStatus=COMPLETED, ...], timestamp=1598483645778, lastModified=1598483645778}
2020-08-26 17:14:12,117 TRACE [AggregatingMessageHandler] (springbatch.taskExecutor-5) Adding message to group [ SimpleMessageGroup{groupId=4:partitioned.step, messages=[
GenericMessage [payload=StepExecution: id=52, version=3, name=partitioned.step:2, status=COMPLETED, exitStatus=COMPLETED, ...]], timestamp=1598483645778, lastModified=1598483645778}
2020-08-26 17:14:13,680 TRACE [AggregatingMessageHandler] (springbatch.taskExecutor-1) Adding message to group [ SimpleMessageGroup{groupId=4:partitioned.step, messages=[
GenericMessage [payload=StepExecution: id=51, version=3, name=partitioned.step:0, status=COMPLETED, exitStatus=COMPLETED, ...], 
GenericMessage [payload=StepExecution: id=49, version=3, name=partitioned.step:4, status=COMPLETED, exitStatus=COMPLETED, ], timestamp=1598483645778, lastModified=1598483648538}]

这是由于启动时的调试消息吗?我该如何解决这个问题?据我所知,以下是通过JMS配置分区作业的示例。(春季批次4.1(

提前感谢您的任何建议。

尝试使用method="aggregate"为分区处理程序配置聚合器。看起来解析器也试图使用来自MessageChannelPartitionHandlerhandle(StepExecutionSplitter, StepExecution)作为候选。

最新更新