From 44d57d26cab5d0bce153a2a237e22e056803b8b1 Mon Sep 17 00:00:00 2001 From: Fishtail <49390359+fuyuwei01@users.noreply.github.com> Date: Wed, 23 Jul 2025 09:16:26 +0800 Subject: [PATCH] feat: add delay interface in tsf-example. --- CHANGELOG.md | 1 + .../additional-spring-configuration-metadata.json | 2 +- .../demo/consumer/controller/ConsumerController.java | 9 +++++++++ .../cloud/tsf/demo/provider/ProviderController.java | 12 +++++++++++- 4 files changed, 22 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ee9076c62..17cfcf093 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,3 +13,4 @@ - [feat: support shortest response time lb and least connection lb](https://github.com/Tencent/spring-cloud-tencent/pull/1702) - [feat:support traffic mirroring.](https://github.com/Tencent/spring-cloud-tencent/pull/1703) - [feat: support custom quickstart circuitbreak delay time.](https://github.com/Tencent/spring-cloud-tencent/pull/1704) +- [feat: add delay interface in tsf-example.](https://github.com/Tencent/spring-cloud-tencent/pull/1705) diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/main/resources/META-INF/additional-spring-configuration-metadata.json b/spring-cloud-starter-tencent-polaris-discovery/src/main/resources/META-INF/additional-spring-configuration-metadata.json index e62141b85..c1ffb9f34 100644 --- a/spring-cloud-starter-tencent-polaris-discovery/src/main/resources/META-INF/additional-spring-configuration-metadata.json +++ b/spring-cloud-starter-tencent-polaris-discovery/src/main/resources/META-INF/additional-spring-configuration-metadata.json @@ -160,7 +160,7 @@ "description": "polaris loadbalancer." }, { - "name": "spring.cloud.loadbalancer.strategy", + "name": "spring.cloud.loadbalancer.strategies", "type": "java.lang.String", "defaultValue": "polarisWeightedRoundRobin", "description": "loadbalancer strategy." diff --git a/spring-cloud-tencent-examples/tsf-example/consumer-demo/src/main/java/com/tencent/cloud/tsf/demo/consumer/controller/ConsumerController.java b/spring-cloud-tencent-examples/tsf-example/consumer-demo/src/main/java/com/tencent/cloud/tsf/demo/consumer/controller/ConsumerController.java index 37a7fb527..e953bb27b 100644 --- a/spring-cloud-tencent-examples/tsf-example/consumer-demo/src/main/java/com/tencent/cloud/tsf/demo/consumer/controller/ConsumerController.java +++ b/spring-cloud-tencent-examples/tsf-example/consumer-demo/src/main/java/com/tencent/cloud/tsf/demo/consumer/controller/ConsumerController.java @@ -91,6 +91,15 @@ public class ConsumerController { } + @RequestMapping(value = "/echo-rest/slow/{str}", method = RequestMethod.GET) + public String restSlowProvider(@PathVariable String str) { + try { + return restTemplate.getForObject("http://provider-demo/echo/slow/" + str, String.class); + } + catch (CallAbortedException callAbortedException) { + return callAbortedException.getMessage(); + } + } @RequestMapping(value = "/echo-rest-async/{str}", method = RequestMethod.GET) public String restAsync(@PathVariable String str, @RequestParam(required = false) String tagName, diff --git a/spring-cloud-tencent-examples/tsf-example/provider-demo/src/main/java/com/tencent/cloud/tsf/demo/provider/ProviderController.java b/spring-cloud-tencent-examples/tsf-example/provider-demo/src/main/java/com/tencent/cloud/tsf/demo/provider/ProviderController.java index 6eff6683f..615c58069 100644 --- a/spring-cloud-tencent-examples/tsf-example/provider-demo/src/main/java/com/tencent/cloud/tsf/demo/provider/ProviderController.java +++ b/spring-cloud-tencent-examples/tsf-example/provider-demo/src/main/java/com/tencent/cloud/tsf/demo/provider/ProviderController.java @@ -60,6 +60,8 @@ public class ProviderController { private boolean ifBadGateway = false; + private int delay = 1000; + // 获取本机ip public static String getInet4Address() { Enumeration nis; @@ -91,6 +93,14 @@ public class ProviderController { return echoHello; } + @RequestMapping(value = "/setDelay", method = RequestMethod.GET) + public String setSleepTime(@RequestParam("delay") int delay) { + this.delay = delay; + String result = "set delay time success, delay: " + delay; + LOG.info(result); + return result; + } + @RequestMapping(value = "/echo/{param}", method = RequestMethod.GET) public ResponseEntity echo(@PathVariable String param) { if (ifBadGateway) { @@ -143,7 +153,7 @@ public class ProviderController { */ @RequestMapping(value = "/echo/slow/{param}", method = RequestMethod.GET) public String echoSlow(@PathVariable String param, @RequestParam(required = false) Integer delay) throws InterruptedException { - int sleepTime = delay == null ? 1000 : delay; + int sleepTime = delay == null ? this.delay : delay; LOG.info("slow request param: [" + param + "], Start sleep: [" + sleepTime + "]ms"); Thread.sleep(sleepTime); LOG.info("slow request param: [" + param + "], End sleep: [" + sleepTime + "]ms");