工程结构
domain: ThreadPoolConfigEntity 动态线程池配置实体。
trigger:触发器, DynamicThreadPoolController 接收前端⻚⾯发送的数据。
types:设置返回结果类型, Response 。
应用层
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
| @Slf4j @RestController() @CrossOrigin("*") @RequestMapping("/api/v1/dynamic/thread/pool/") public class DynamicThreadPoolController {
@Resource public RedissonClient redissonClient;
@RequestMapping(value = "query_thread_pool_list", method = RequestMethod.GET) public Response<List<ThreadPoolConfigEntity>> queryThreadPoolList() { try { RList<ThreadPoolConfigEntity> cacheList = redissonClient.getList("THREAD_POOL_CONFIG_LIST_KEY"); return Response.<List<ThreadPoolConfigEntity>>builder() .code(Response.Code.SUCCESS.getCode()) .info(Response.Code.SUCCESS.getInfo()) .data(cacheList.readAll()) .build(); } catch (Exception e) { log.error("查询线程池数据异常", e); return Response.<List<ThreadPoolConfigEntity>>builder() .code(Response.Code.UN_ERROR.getCode()) .info(Response.Code.UN_ERROR.getInfo()) .build(); } }
@RequestMapping(value = "query_thread_pool_config", method = RequestMethod.GET) public Response<ThreadPoolConfigEntity> queryThreadPoolConfig(@RequestParam String appName, @RequestParam String threadPoolName) { try { String cacheKey = "THREAD_POOL_CONFIG_PARAMETER_LIST_KEY" + "_" + appName + "_" + threadPoolName; ThreadPoolConfigEntity threadPoolConfigEntity = redissonClient.<ThreadPoolConfigEntity>getBucket(cacheKey).get(); return Response.<ThreadPoolConfigEntity>builder() .code(Response.Code.SUCCESS.getCode()) .info(Response.Code.SUCCESS.getInfo()) .data(threadPoolConfigEntity) .build(); } catch (Exception e) { log.error("查询线程池配置异常", e); return Response.<ThreadPoolConfigEntity>builder() .code(Response.Code.UN_ERROR.getCode()) .info(Response.Code.UN_ERROR.getInfo()) .build(); } }
@RequestMapping(value = "update_thread_pool_config", method = RequestMethod.POST) public Response<Boolean> updateThreadPoolConfig(@RequestBody ThreadPoolConfigEntity request) { try { log.info("修改线程池配置开始 {} {} {}", request.getAppName(), request.getThreadPoolName(), JSON.toJSONString(request)); RTopic topic = redissonClient.getTopic("DYNAMIC_THREAD_POOL_REDIS_TOPIC" + "_" + request.getAppName()); topic.publish(request); log.info("修改线程池配置完成 {} {}", request.getAppName(), request.getThreadPoolName()); return Response.<Boolean>builder() .code(Response.Code.SUCCESS.getCode()) .info(Response.Code.SUCCESS.getInfo()) .data(true) .build(); } catch (Exception e) { log.error("修改线程池配置异常 {}", JSON.toJSONString(request), e); return Response.<Boolean>builder() .code(Response.Code.UN_ERROR.getCode()) .info(Response.Code.UN_ERROR.getInfo()) .data(false) .build(); } }
}
|
前端页面