【问题标题】:Mule with Spring batch integrationMule 与 Spring 批量集成
【发布时间】:2014-10-09 21:18:17
【问题描述】:

我的要求是我必须使用 mule 配置从队列中读取消息,并且我必须将消息传递给 Spring 批处理以进行进一步处理。如何将消息传递给 Spring Batch 阅读器?如果有人有这个,请给我发送代码 sn-p。

谢谢 萨钦

【问题讨论】:

    标签: spring-batch


    【解决方案1】:

    Spring Batch 提供了一个JobLaunchingGateway,可用于通过消息启动 Spring Batch 作业。将此与 JobLaunchRequest 结合使用作为消息正文,您将能够启动您的作业并将消息中的作业参数传递给作业组件(读取器、写入器等)。

    您可以在此处阅读有关JobLaunchingGateway 的更多信息:http://docs.spring.io/spring-batch/reference/html/springBatchIntegration.html#launching-batch-jobs-through-messages

    您可以在此处阅读有关JobLaunchRequest 的更多信息:http://docs.spring.io/spring-batch/apidocs/org/springframework/batch/integration/launch/JobLaunchRequest.html

    【讨论】:

    • 谢谢迈克尔。哪个 Spring 批处理版本有这 2 个类?你有这方面的示例程序吗?
    • Spring Batch 3 两者都有。在 Spring Batch 3 之前,您可以改用 MessageChannelJobLauncher(网关包装它)并自己连接它。通过示例,在此处查看网关的集成测试:github.com/spring-projects/spring-batch/blob/master/…
    • 我会试试这个。只是给你更多关于我的问题的意见,我希望你的上述意见能解决这个问题。我的 mule 应用程序正在侦听一个队列,并且我在 Mule 侦听器中收到了字符串格式的 xml 消息。我的工作是阅读器是 StaxEventItemReader,它的解组器属性是 Jaxb2Marshaller 对象。我必须将 xml 字符串从 Mule 侦听器传递给 StaxEventItemReader 以读取 xml 字符串并将其传递给 writer 对象。我希望您的上述解决方案可以解决此问题。
    • 嗨,迈克尔,我尝试按照您的建议进行操作。但是如何将 xml 字符串传递给应该读取 xml 消息并进一步处理它的作业阅读器。下面是我的作业配置 我尝试将 Jobparameter 添加为 xml 字符串,但我得到的值对于列“BATCH_JOB_EXECUTION_PARAMS”来说太大了。“STRING_VAL”
    • 对不起,我误解了你的问题。如果要将实际消息传递给阅读器,则需要将 StaxEventItemReader 包装在将读取消息的内容中。 Spring Batch 没有可以为您的 OOTB 执行此操作的阅读器。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    • 2011-11-17
    相关资源
    最近更新 更多