如何使用网关 replyTimeoutExpression
How do I use Gateway replyTimeoutExpression
在我的 application.properties
我写了:
example.requestTimeoutExpression = 60000
example.replyTimeoutExpression = 60000
但是在配置 MessagingGateway 时如何使用它?
@Component
@MessagingGateway
public interface ExampleGateway {
@Gateway(
requestChannel = "exampleInput",
replyChannel = "exampleOutput",
requestTimeoutExpression = "???",
replyTimeoutExpression = "???"
)
Object send(Object request);
}
None 这些作品:
"example.requestTimeoutExpression"
"#{example.requestTimeoutExpression}"
"${example.requestTimeoutExpression}"
虽然提供的解决方案似乎可以帮助我解决最初的问题。
超时没有影响。
我显然误会了什么。
这似乎有效果:
@Bean
public IntegrationFlow exampleFlow(
@Value("${example.remoteTimeout}") long remoteTimeout
) {
return IntegrationFlows.from("exampleInput")
.transform(...)
.handle(Tcp.outboundGateway(Tcp.nioClient(host, port)
...
)
.remoteTimeout(remoteTimeout)
)
.transform(...)
.channel("exampleOutput")
.get();
}
当前不支持属性;请在 GitHub 上打开一个新功能问题;这是一个解决方法:
@Bean
Long reqTimeout(@Value("${example.requestTimeoutExpression}") Long to) {
return to;
}
@Bean
Long repTimeout(@Value("${example.replyTimeoutExpression}") Long to) {
return to;
}
@Component
@MessagingGateway
interface ExampleGateway {
@Gateway(
requestChannel = "nullChannel",
replyChannel = "exampleOutput",
requestTimeoutExpression = "@reqTimeout",
replyTimeoutExpression = "@repTimeout"
)
Object send(Object request);
}
在我的 application.properties
我写了:
example.requestTimeoutExpression = 60000
example.replyTimeoutExpression = 60000
但是在配置 MessagingGateway 时如何使用它?
@Component
@MessagingGateway
public interface ExampleGateway {
@Gateway(
requestChannel = "exampleInput",
replyChannel = "exampleOutput",
requestTimeoutExpression = "???",
replyTimeoutExpression = "???"
)
Object send(Object request);
}
None 这些作品:
"example.requestTimeoutExpression"
"#{example.requestTimeoutExpression}"
"${example.requestTimeoutExpression}"
虽然提供的解决方案似乎可以帮助我解决最初的问题。 超时没有影响。 我显然误会了什么。 这似乎有效果:
@Bean
public IntegrationFlow exampleFlow(
@Value("${example.remoteTimeout}") long remoteTimeout
) {
return IntegrationFlows.from("exampleInput")
.transform(...)
.handle(Tcp.outboundGateway(Tcp.nioClient(host, port)
...
)
.remoteTimeout(remoteTimeout)
)
.transform(...)
.channel("exampleOutput")
.get();
}
当前不支持属性;请在 GitHub 上打开一个新功能问题;这是一个解决方法:
@Bean
Long reqTimeout(@Value("${example.requestTimeoutExpression}") Long to) {
return to;
}
@Bean
Long repTimeout(@Value("${example.replyTimeoutExpression}") Long to) {
return to;
}
@Component
@MessagingGateway
interface ExampleGateway {
@Gateway(
requestChannel = "nullChannel",
replyChannel = "exampleOutput",
requestTimeoutExpression = "@reqTimeout",
replyTimeoutExpression = "@repTimeout"
)
Object send(Object request);
}