Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring boot 如何通过Azure函数/Spring云函数调用Spring集成SFTP_Spring Boot_Azure Functions_Spring Integration_Spring Cloud Function - Fatal编程技术网

Spring boot 如何通过Azure函数/Spring云函数调用Spring集成SFTP

Spring boot 如何通过Azure函数/Spring云函数调用Spring集成SFTP,spring-boot,azure-functions,spring-integration,spring-cloud-function,Spring Boot,Azure Functions,Spring Integration,Spring Cloud Function,我们目前有Spring引导应用程序,它们使用Spring集成SFTP根据Cron时间表发送和接收文件。我们正在尝试使用SpringCloud函数将应用程序转换为Azure函数。只是想知道,当应用程序收到来自Azure函数的http调用时,有没有办法调用Spring Integration SFTP适配器只运行一次?从SpringIntegration的文档来看,轮询器的唯一选项似乎是Cron或固定速率/固定延迟。提前感谢您的帮助或建议 我想知道您是否可以只在一个触发器上添加而不是cron或fix

我们目前有Spring引导应用程序,它们使用Spring集成SFTP根据Cron时间表发送和接收文件。我们正在尝试使用SpringCloud函数将应用程序转换为Azure函数。只是想知道,当应用程序收到来自Azure函数的http调用时,有没有办法调用Spring Integration SFTP适配器只运行一次?从SpringIntegration的文档来看,轮询器的唯一选项似乎是Cron或固定速率/固定延迟。提前感谢您的帮助或建议

我想知道您是否可以只在一个触发器上添加
而不是cron或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调用的事件的触发器,所以您应该考虑使用<代码> SFFTPoObjultGuest而不是使用<代码>获取<代码> >或代码> Ls<代码>命令:

谢谢ARTEM。我们的目标是尽量减少对现有代码的修改。但是,我们将按照您的建议尝试这两种方法。真的很感激!是 啊由于只有HTTP触发器这样的限制,它不会“尽可能少”:您肯定需要以这种或其他方式进行调整。
MessageSource
的要点是它不依赖于任何事件,可以根据轮询器配置定期执行操作。您所拥有的HTTP函数完全不适合轮询器模型,否则就不适合了。这就是为什么我建议使用网关方法来与函数签名保持一致。