FTP 入站适配器在 SQS 消息发送后将文件发送到远程

问题描述 投票:0回答:1

我正在实现一个 @InboundChannelAdapter 场景,其中我需要在将消息发送到 AWS SQS 队列后将文件移动到远程存档目录。我已经使用 TransactionSynchronizationFactory 和 ExpressionEvaluatingTransactionSynchronizationProcessor 设置 setAfterCommitExpression 成功实现了与数据库类似的场景。

My Sqs 服务激活器

  @Bean
  @ServiceActivator(inputChannel = "sqsRequisitionToAlmSendChannel")
  public MessageHandler sqsMessageHandler(@Autowired SqsAsyncClient amazonSqs) {
    SqsMessageHandler sqsMessageHandler = new SqsMessageHandler(amazonSqs);
    sqsMessageHandler.setQueueNotFoundStrategy(QueueNotFoundStrategy.FAIL);
    sqsMessageHandler.setQueue(queue_name);
    return sqsMessageHandler;
  }
java spring-boot spring-integration spring-integration-aws spring-integration-ftp
1个回答
0
投票

通常我建议使用

PublishSubscribeChannel
,只有当第一个订阅者成功时,第二个订阅者才会为同一条消息执行所需的操作。

在文档中查看更多信息:https://docs.spring.io/spring-integration/reference/channel/implementations.html#channel-implementations-publishsubscribechannel

您还可以查看

ExpressionEvaluatingRequestHandlerAdvice
,并将其
successChannel
选项提供给该
@ServiceActivator
端点。

另请参阅文档:https://docs.spring.io/spring-integration/reference/handler-advice/classes.html#expression-advice

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.