From 94bbc42acfcf10678b560e2695866b9f690de3ea Mon Sep 17 00:00:00 2001 From: fishtailfu Date: Tue, 22 Jul 2025 20:06:10 +0800 Subject: [PATCH] feat: add delay interface in tsf-example. --- CHANGELOG.md | 1 + .../demo/consumer/controller/ConsumerController.java | 10 +++++++++- .../cloud/tsf/demo/provider/ProviderController.java | 12 +++++++++++- 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 450ee93ce..87b6983b1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,3 +10,4 @@ - [feat: support shortest response time lb and least connection lb](https://github.com/Tencent/spring-cloud-tencent/pull/1637) - [feat:support traffic mirroring.](https://github.com/Tencent/spring-cloud-tencent/pull/1647) - [feat: support custom quickstart circuitbreak delay time.](https://github.com/Tencent/spring-cloud-tencent/pull/1666) +- [feat: add delay interface in tsf-example.](https://github.com/Tencent/spring-cloud-tencent/pull/1668) 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 d85b6dcfc..614274d13 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 @@ -70,7 +70,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 d5c4187be..8acdb33bb 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 @@ -55,6 +55,8 @@ public class ProviderController { @Autowired private ProviderNameConfig providerNameConfig; + private int delay = 1000; + // 获取本机ip public static String getInet4Address() { Enumeration nis; @@ -86,6 +88,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) { int status; @@ -133,7 +143,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");