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

在Spring集成入站适配器接收消息后触发Spring批处理作业

彭俊智
2023-03-14

我正在从事一个spring批处理项目,其用例是:spring批处理作业依赖于SFTP服务器(远程目录)上的文件,因此,一旦文件在SFTP服务器上可用,相应的作业(spring批处理)就应该启动。此外,我不想先开始工作,然后再查找文件,因为这将是基于时间的方法,而不是基于通知的方法。所以我想使用spring集成(sftp入站通道适配器)。作为入站适配器(SFTP)的一部分,一旦我在SFTP服务器的远程目录中获得/接收/下载新文件(基于时间戳),我想通知spring batch应用程序,然后触发一个作业。例如,如果远程目录中有两个文件,请说1。txt,2。txt。这些文件每天都有。所以,一旦我的频道接收到远程目录中的新文件,它应该

  1. 下载1。然后通知spring batch应用程序启动spring batch Job1
  2. 下载2。然后通知spring batch应用程序启动spring batch Job2

有人能验证这种方法并进一步指导吗?

共有1个答案

孟健
2023-03-14

请参阅Spring Batch中的sping-batch-集成子项目;特别是JobLaunchingGatewayJobLaunchingMessageHandler

 类似资料:
  • 我的要求和帖子里描述的差不多。i、 例如,在文件生成器Spring批处理完成后触发Spring集成程序。这里我主要使用Spring集成示例:XML配置和测试。我观察到,测试程序将配置文件初始化为ClassPathXmlApplicationContext,然后根据需要设置一些值。忽略配置,程序的关键似乎是以下四行: 我想知道是否有一个选项可以将其移动到配置文件本身,这样我就不必从测试程序中创建消息

  • 基础知识: 使用带集成的Spring 4.1.1,引导和1.0.0的DSL。 多个入站SFTP适配器在不同的时间表上从不同的供应商获取文件。 每个集成流在文件下载后将标头附加到消息中,以标识供应商源。 使用MessagePublishingErrorHandler处理异常。 标准消息流在消息处理成功或消息未能完成时通知外部监控解决方案。使用消息头来识别哪个流失败。 在我们收到消息后,成功和错误流都

  • 使用Spring Integration Kafka,使用出站通道适配器,我尝试向名为“test”的主题发送消息 通过命令行终端,我启动了动物园管理员、kafka并创建了名为“test”的主题 Spring XML配置 JUnit测试代码 测试用例成功,在调试时,我发现channel.send()返回true 我使用下面的命令通过命令行检查了主题,但是我在测试主题中看不到任何消息。 bin/kaf

  • 我如何处理在Spring整合中未能向Kafka传达的信息? 我在“int kafka:outbound channel adapter”中没有看到“error channel”是一个选项,我想知道应该在哪里添加错误通道信息,以便我的ErrorHandler可以获得“failed to kafka”类型的错误。(包括所有类型的故障、配置、网络等) 此外,inputToKafka是排队通道,我应该在哪

  • 我们有一个作业,它使用cron表达式在下午1点到5点之间每隔M-F轮询一次文件和数据库。在此期间,如果文件到达,它将下载文件并调用作业。这很好,我们使用了spring集成和批处理。 现在,我们需要一些定制,其中我们有多个作业,其中job1应该像上面一样轮询。一旦文件处理成功,它应该停止轮询。 第二个要求是,若在轮询期间并没有收到文件,我们希望向ops团队发送一些通知,以便他们可以采取一些行动。

  • 当RabbitMq消息到达队列时,我目前正在使用IntegrationFlow来触发作业执行。IntegrationFlow的AmqpInFronChannelAdapter和作业的第一步的ItemReader都配置为从同一队列中读取消息。 我遇到的问题是IntegrationFlow的AmqpInboundChannelAdapter读取RabbitMQ消息,然后ItemReader再也找不到该