我们的应用集成流程被定义为拆分器、->、ws网关、->聚合器。拆分器将请求拆分为帐号列表;因此,对于每个帐号,发起web服务调用,并将来自多个web服务调用的响应聚集在拆分器和ws网关之间的aggregator.The信道中,从而在不同的线程中并行启动每个web服务调用。
我们为每个webservice调用增加了超时。但我们希望为整个过程设置一个单一的超时时间。也就是说,所有的webservice调用都应该在50秒内完成,而不是为每个单独的调用设置50秒超时。commonj WorkManagerTaskExecutor,在直接通过代码实现时,通过waitForAll(Collection workItems,long timeout_ms)方法提供此特性。是否有任何方法可以使用此功能或类似的功能来实现我们的需求。
发布于 2015-08-26 15:23:10
不幸的是,我们不能使用该特定TaskExecutor的这样一个自定义特性。
另一方面,如果您说“整个过程的单个超时”,我可以帮助您处理<gateway>模式:
<chain>
<gateway request-channel="splitterChannel" reply-timeout="50000"/>
</chain>其中reply-timeout是:
指定此网关在返回之前将等待回复消息的时间。默认情况下,它将无限期地等待。如果网关超时,则返回‘'null’。
这对你有意义吗?
https://stackoverflow.com/questions/32229207
复制相似问题