我试图了解如何将IntegrationFlow构建为单元,并将它们连接起来。
我设置了一个非常简单的处理集成流:
IntegrationFlow processingFlow = f -> f
.<String>handle((p, h) -> process(p))
.log();
flowContext.registration(processingFlow)
.id("testProcessing")
.autoStartup(false)
.register();
处理非常简单:
public String process(String process) {
return process + " has been processed";
}
然后,使用.gateway()
从一个源组成一个流,将该源加入到处理中:
MessageChannel beginningChannel = MessageChannels.direct("beginning").get();
StandardIntegrationFlow composedFlow = IntegrationFlows
.from(beginningChannel)
.gateway(processingFlow)
.log()
.get();
flowContext.registration(composedFlow)
.id("testComposed")
.autoStartup(false)
.addBean(processingFlow)
.register();
composedFlow.start();
beginningChannel.send(MessageBuilder.withPayload(new String("first string")).build());
beginningChannel.send(MessageBuilder.withPayload(new String("second string")).build());
日志处理程序确认已经为第一条消息调用了handle方法,但是主线程随后处于空闲状态,并且永远不会处理第二条消息。
这难道不是从构建块组成集成流的正确方法吗?在通道中这样做需要将通道注册为bean,我试图动态地完成所有这些。
它必须是processingflow
中的logandreply()
。看看他们的JavaDocs有什么不同。流末尾的log()
使其成为单向的。这就是为什么您被阻止,因为网关等待回复,但没有人符合您当前的流定义。不幸的是,我们不能从框架级别确定这一点:可能会有一些情况,当您确实没有根据路由或过滤逻辑返回时。网关可以配置应答超时。默认情况下,它是无限的。
问题内容: 我正在尝试编写一个程序,该程序在循环中创建新线程,而不等待它们完成。据我了解,如果我在线程上使用.start(),则我的主循环应继续执行,而另一个线程将关闭并同时执行其工作 但是,一旦我的新线程启动,循环就会阻塞,直到线程完成为止。我是否误解了python中线程的工作方式,还是我正在做一些愚蠢的事情。 这是我用于创建新线程的代码。 谢谢大家 问题答案: 这将调用该函数并将其 结果 传递
我想举例说明一个关于铁路的项目。 我决定使用Swing。我在JPanel中有一个背景图,我画了在铁路上移动的小圆圈。如果我只有一列火车,它会非常完美,但是我想增加更多的火车。 这是我开始做的(和工作): “go”读取一个数组列表,其中包含我的圆应该指向的坐标。 我真的不知道如何创造几列火车。我应该创建几个JPanel还是只创建一个包含所有圆圈的JPanel? 如果我记得很清楚,我应该使用线程,但我
问题内容: 我有一个Python程序,当我使用退出应用程序时 ,脚本不会关闭。我的过程仍显示在运行的过程中。 为什么python线程不能关闭? 问题答案: 您需要将该线程设为守护程序线程。为此,请在调用线程的init之后添加以下行 当只有守护程序线程处于活动状态时,程序将退出,主线程当然是非守护程序的
我使用PHP和Apache以及nginx作为反向代理,所有这些都在Docker上,我有几个长时间运行的调用在60秒后计时,导致504网关超时。我知道我的应用程序被成功调用,因为我正在跟踪我的PHP应用程序的日志,我可以看到它正在积极地向日志写入。每次都是60秒的超时,但我似乎不知道那个设置在哪里。 我尝试了这篇文章中的建议,但没有任何效果。我已经用一些与时间相关的设置更新了php.ini文件,并验
我试图部署一个角应用程序在OpenShift与Istio作为服务网格。服务yaml: 到目前为止,一切都与http连接一起工作。为了切换到https连接,我将Red Hat Openshift服务Mesh operator安装提供的istio ingressgateway路由配置为使用passthrough 以及istio的网关资源: VirtualService指向angular app的808
我不知道如何在我们的VPC中提供对AWS Lambda的出站Internet访问,同时还具有Internet网关以支持对我们VPC中某些资源的入站访问(从Internet)。 从下面提供的文档中,我了解到我们需要创建一个私有和公共子网(使用NAT),并且有一个路由表指向IGW,另一个指向NAT。 https://aws.amazon.com/premiumsupport/knowledge-cen