当前位置: 首页 > 知识库问答 >
问题:

将批处理功能添加到集成流中

宣弘新
2023-03-14

我目前有一个Spring集成流程,可以很好地工作(请参见图中的链接)。我想在当前配置的基础上添加批处理,以允许使用指数回退、断路器html" target="_blank">模式进行重试,并将作业持久化到数据库中以重新启动。

集成流由一个接收消息的网关组成

我已经搜索,阅读文档,看了大量的例子,我不知道如何将流程的最后一步封装到批处理作业中。如果上传过程中出现SFTP连接问题或其他异常,我需要重试上传字符串(作为文件的有效负载)的能力。我还希望能够在出现故障时重新启动(使用数据库支持的JobRepository),所以我认为使用重试建议还不够。

请解释并帮助我理解如何连接这些部件,以及使用哪些部件(job launching gateway、MessageToJobRequest Transformer、ItemReader、ItemWriter??)。我也不确定如何访问每条消息

共有1个答案

尹晟
2023-03-14

首先,让我们来看看我们如何能够克服你的要求,没有批处理。

>

要实现restartable选项,您可以将该适配器的输入通道作为带有Message-store的持久队列。

现在关于批次。

要从集成流程启动作业,您应该编写一些MessageToJobRequest并使用

要将消息从作业发送到某个通道(例如到sftp适配器),可以使用org。springframework。一批整合。大块ChunkMessageChannelItemWriter

请在此处阅读更多内容:http://docs.spring.io/spring-batch/reference/html/springBatchIntegration.html

 类似资料:
  • 我想使用jar库http://jcodec.org/正在处理。我知道有很多关于库的教程,但没有一个足够清晰,让我能够理解。我已经拖放了jcodec-0.1.5。jar创建了一个名为“code”的文件夹,其中包含文件jcodec-0.1.5。罐子在里面,但是当我想用的时候 我还在 “未定义构造函数FrameGrab(文件)。” 我需要进口什么东西吗?如果是,在“导入”后我必须键入什么?非常感谢您的帮

  • 我有一个REST控制器,它调用带有注释的网关(errorChannel=ERROR\u CHANNEL) 这样,无论下游发生什么错误,网关发起的集成流都将流入一个错误通道,该通道将由另一个集成流处理,这是按预期工作的。 现在,还有另一个场景,其中一个集成流从Kafka读取消息,将这些消息路由到另一个通道,另一个集成流处理这些消息,另一个流向远程服务发送HTTP请求。 如何处理上述流中可能出现的异常

  • 我正在尝试将BeanIO与spring Batch集成。使用BeanIO,我正在读取一个固定长度的流文件。我已经测试并验证了使用独立类读取平面文件的代码,它可以无缝地工作,但是当我试图将它与Spring Batch集成时,BeanIOFlatFileItemReader的doRead()方法没有被调用,而且我编写的RedemptionEventCustomProcessor是如何直接被调用的。 我

  • 问题内容: 通过在某个地方注册全局钩子(即,无需修改实际函数本身)或通过其他方式,是否有任何方法可以使任何函数输出console.log语句? 问题答案: 这是用您选择的函数扩展全局名称空间中所有函数的方法: 不利的一面是,调用后创建的任何函数都不会具有其他行为。

  • 如何使用java dsl Integrationflows从spring集成触发spring批处理作业。 我有下面的代码,它轮询目录中的文件,当新文件添加到目录中时,会生成一条消息,我想在该实例中触发一个Spring批处理作业。请建议。

  • 我有一个在视图上执行动画的功能。我想为此函数实现一个完成处理程序,该处理程序将在动画完成后调用。 在ViewController中... 在HudView类中... 我尝试了很多方法,但找不到正确的语法: 传递非转义参数“myCompletionHandler”到函数,期望一个@转义闭包 无法将“Void”类型的值转换为预期的参数类型“((Bool) - 闭包:使用非转义参数“myCompleti