【问题标题】:Wait for spring integration flow to complete等待 spring 集成流程完成
【发布时间】:2023-04-07 16:05:01
【问题描述】:

我有一个从目录读取文件并执行一些操作的简单流程:

   @Bean
public IntegrationFlow processMessage() {
    return IntegrationFlows
            .from(messageFlow1Directory(), c -> c
                    .id("flow1")
                    .autoStartup(false)
                    .poller(Pollers.fixedDelay(30000)
                    .errorChannel(errorMessageChannel())))
            .publishSubscribeChannel(s -> s
                    .subscribe(f -> f.handle("flow1Service", "processMessage"))
                    .subscribe(f -> f.handle(otherAction)))
            .get();
}

我已经在我的一个主要课程中使用 controlBus 来启动它:

public static void main(String[] args) throws InterruptedException {
    SpringApplication.run(Flow1Main.class, args);
    controlBus.send(new GenericMessage<>("@flow1.start()"));
}

我想要的是在发送 stop() 并退出主类之前等待流程完成。 我该怎么做?

提前感谢您的帮助

【问题讨论】:

    标签: java spring-integration spring-integration-dsl


    【解决方案1】:

    如果您只想处理一条消息,使用网关发送消息会更容易,而不是启动/停止轮询器。

    https://docs.spring.io/spring-integration/docs/current/reference/html/messaging-endpoints.html#gateway

    【讨论】:

      猜你喜欢
      • 2021-12-23
      • 2013-03-22
      • 1970-01-01
      • 2010-11-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多