如何通过Azure Functions / Spring Cloud Function调用Spring Integration SFTP

问题描述

我们目前有一些Spring Boot应用程序,它们使用Spring Integration SFTP根据Cron计划发送和接收文件。我们正在尝试使用Spring Cloud Function将应用程序转换为Azure Function。只是想知道有什么方法可以调用Spring Integration SFTP适配器以在应用程序收到来自Azure Function的http调用时仅运行一次吗?从Spring Integration的文档看来,轮询器的唯一选择是Cron或Fixed-rate / fixed-delay。在此先感谢您的帮助或建议!

解决方法

我想知道是否可以添加OnlyOnceTrigger而不是cron或fixed fixed。

它的代码可能是这样的:

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调用的事件之类的触发器,因此应考虑使用SftpOutboundGateway代替getls命令:{{3 }}