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