Spring集成tcp网关可以按如下方式设置:
<!-- Server side -->
<int-ip:tcp-connection-factory id="crLfServer"
type="server"
port="${availableServerSocket}"
single-use="true"
so-timeout="5000"
using-nio="false"
/>
<int-ip:tcp-inbound-gateway id="gatewayCrLf"
connection-factory="crLfServer"
request-channel="serverBytes2StringChannel"
error-channel="errorChannel"
reply-timeout="10000"/>
我的TCP服务器工作正常,并在10秒内响应。
有时其他重要的批处理过程会减慢我的服务器处理速度。在此期间,我想动态更改回复超时。
如何在正在运行的服务器中动态更改回复超时?
答案 0 :(得分:2)
可以通过so-timeout
AbstractConnectionFactory
在crLfServer
bean上更改id
。
您可以使用reply-timeout
TcpInboundGateway
在gatewayCrLf
bean上更改id
。
无论如何,您必须确保在这些更改后恢复所有内容。 此外,您的应用程序应确保无法再访问这些组件。否则你最终会出现意想不到的行为。
另一方面,考虑提供其他类似的组件,但仅针对具有所需超时的特定任务。