我们的应用程序集成流程定义为拆分器 - > ws gateway - >聚合器。拆分器将请求拆分为帐号列表;这样,对于每个帐号,都会启动一个Web服务调用,并在聚合器中聚合来自多个Web服务调用的响应。分离器和ws网关之间的通道由调度程序" commonj WorkManagerTaskExecutor"定义。这样每个webservice调用都是在不同的线程中并行启动的。
我们为每个webservice调用添加了超时。但是我们想为整个过程设置一个超时。即所有网络服务呼叫应该在50秒内完成,而不是为每个呼叫设置50秒超时。 commonj WorkManagerTaskExecutor,通过代码直接实现waitForAll(Collection workItems,long timeout_ms)方法提供此功能。有没有办法使用这个或类似的功能来实现我们的要求。
答案 0 :(得分:1)
不幸的是,不,我们无法使用特定sendMail()
的自定义功能。
如果您说“整个过程的单一超时”,我可以从另一方面使用send()
模式帮助您:
TaskExecutor
<gateway>
的位置:
指定此网关等待回复消息的时间 回来之前。默认情况下,它会无限期地等待。返回'null' 如果网关超时。
对你有意义吗?