【问题标题】:How to use Spring-batch to read messages from Spring-integration channel?如何使用 Spring-batch 从 Spring-integration 通道读取消息?
【发布时间】:2014-07-02 19:30:05
【问题描述】:

我现有的弹簧集成应用程序将 POJO 消息转储到通道。我如何挂钩 spring-batch 以便它可以从这个频道实时读取消息?我是否需要创建一个自定义 ItemReader 或者我可以使用一些开箱即用的东西?一个简单的示例 XML 配置也会有所帮助。

【问题讨论】:

    标签: spring-batch spring-integration


    【解决方案1】:

    我不知道任何“开箱即用”的东西,但将PollableChannel(通常是Queuechannel)包装在ItemReader 中是微不足道的,只需在read() 中使用channel.receive(timeout)。

    超时后,reader返回null;表示批处理结束。

    【讨论】:

    • 谢谢——这是一个非常好的建议!在我的情况下,通道将始终获取数据,因此批处理作业似乎永远不会结束。另外,我不确定频道上的第一条消息是否会触发批处理作业,所以我需要以某种方式启动该作业。我读过INT-3364,您建议将 JdbcBatchItemWriter 包装在服务激活器中以支持批量插入——我会尝试这种方法。
    • 否;专门针对 JDBC 的批量写入;要启动作业,您应该使用 Job Launching Gateway;见Spring Batch Integration documentation for more information。
    • 哦;我明白了,您的意思是使用 INT-3364 技术而不是使用批处理作业;对不起;误解了。
    猜你喜欢
    • 2023-03-29
    • 2019-06-29
    • 1970-01-01
    • 2017-05-08
    • 1970-01-01
    • 1970-01-01
    • 2018-03-10
    • 1970-01-01
    • 2014-07-03
    相关资源
    最近更新 更多