0

我们目前有 Spring Boot 应用程序,它们使用 Spring Integration SFTP 基于 Cron 计划发送和接收文件。我们正在尝试使用 Spring Cloud Function 将应用程序转换为 Azure Function。只是想知道当应用程序收到来自 Azure Function 的 http 调用时,是否有任何方法可以调用 Spring Integration SFTP 适配器运行一次?从 Spring Integration 的文档来看,轮询器的唯一选择似乎是 Cron 或固定速率/固定延迟。提前感谢您的任何帮助或建议!

4

1 回答 1

1

我想知道您是否可以添加一个OnlyOnceTrigger而不是 cron 或固定固定。

它的代码可能是这样的:

public class OnlyOnceTrigger implements Trigger {

    private final AtomicBoolean hasRun = new AtomicBoolean();

    @Override
    public Date nextExecutionTime(TriggerContext triggerContext) {
        if (this.hasRun.getAndSet(true)) {
            return null;
        }
        return new Date();
    }

}

另一方面,由于您有一个类似于来自该 HTTP 调用的事件的触发器,因此您应该考虑使用or命令SftpOutboundGateway代替: https ://docs.spring.io/spring-integration/docs/5.3.2.RELEASE /reference/html/sftp.html#sftp-outbound-gatewaygetls

于 2020-09-22T14:34:38.737 回答