java - RestTemplate 线程和多个用户
问题描述
我想在休息呼叫中将内容返回给用户,并且我想向跟踪服务器发送有关该内容请求的休息呼叫。如果跟踪服务器因太多响应而不堪重负,我不在乎它是否失败。我希望它快速超时,而不是阻止主要内容请求。为此,我创建了以下内容:
@Configuration
@EnableAsync
public class AsyncConfiguration {
@Bean (name = "taskExecutor")
public Executor taskExecutor() {
log.info("Creating Async Task Executor");
final ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setMaxPoolSize(2);//higher in prod
executor.setQueueCapacity(2);//higher in prod
executor.initialize();
executor.setThreadNamePrefix("AyncThread-");
return executor;
}
}
...
@Async
public void trackSearch(TrackingRequest request) {
try {
restTemplate.postForLocation(activityUri, request);
}
catch (Exception e) {
log.info("Exception in tracking activity: " + e.getMessage());
}
}
所以,得到主要内容后,我trackSearch
在上面调用。我不在乎它是否像我说的那样失败。但是当我在 JMeter 中测试这段代码时,我似乎无法“击败”队列大小。我所期待的是,如果有太多用户到达同一个端点,队列就会填满,它会停止尝试调用 trackSearch 并因此停止调用 restTemplate 。现在,没有一个调用失败。
我显然在这里误解了一些东西,所以如果有人能阐明我做错了什么,我将不胜感激。
解决方案
推荐阅读
- python - 如何为图像中的对象分别用不同的颜色着色
- node.js - 尝试通过 axios 发送带有另一个参数的 formData
- javascript - 如何控制台.log 下拉菜单中的属性?
- html - Html 视频背景不适用于 Ionic 框架上的 iOS
- kotlin-coroutines - 单元测试 Kotlin Flows 和 toList()
- javascript - 如何修复内容安全策略错误节点应用程序
- rust - 在 Rust 中将成员推入 Vec 的 Reducer
- html - 如何将 div 设置为与 h1 相同的样式?
- shiny - 需要帮助为物理课编写“向心力”应用程序
- python - 尝试在 python cli 上导入 db 变量时,Flask Sqlalchemy 抛出错误