考慮下面的代碼,
主班
@SpringBootApplication
@EnableCircuitBreaker
public class Main {
}
休息控制器
@PostMapping("/...")
@HystricCommand(commandProperties = { @HystrixProperty(name=”execution.isolation.thread.timeoutInMilliSeconds”, value=”${request.timeout.interval}”)})
public Object getData(){
}
當我呼叫這個端點時,我得到:
HystrixProperty 例外 - 無法設定 commandProperties。groupKey:MyController,commandKey:getData,threadPool:'null'。
當我洗掉 ->value=”${request.timeout.interval}”并將其硬編碼為 -> 時value=”1000”,不再顯示例外并且執行成功。
我們不能在這里做值映射嗎?如果沒有,是否可以將此屬性移動到 application.properties 或通過任何組態檔全域處理該屬性?
我不希望 value 欄位與我的端點一起硬編碼,因為我的應用程式中有 10 多個端點。
uj5u.com熱心網友回復:
從控制器中的 @HystrixCommand 中,洗掉為超時配置的 HystrixProperty 并提供commandKey=。現在在你的 application.properties 添加,
hystrix.command.HystrixCommandKey.execution.isolation.thread.timeoutInMilliseconds=2000
有關更多詳細資訊,請查看 https://github.com/Netflix/Hystrix/wiki/Configuration#execution.isolation.thread.timeoutInMilliseconds
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/377910.html
