问题描述
我们目前有一些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
代替get
或ls
命令:{{3 }}