对于每个请求,都会发生很多计算.平均而言,回复大约需要10分钟来处理.现在同时,如果用户发送新请求;以前的请求绝对没有意义继续下去.

所以我编写了一个代码,我基本上打断了执行它的前一个线程.在tomcat环境中这是一个好习惯吗?可以有更好的解决方案来处理它.是否可以中断tomcat线程.

或者我应该管理自己的线程池并让pool为我做计算?

更多信息:

基本上整个任务都包含FutureTask.对于每个请求,执行此任务,并且ConcurrentHashMap存储对任务的引用.对于每个请求,地图中的所有未来都被“取消”,然后继续执行最新请求.因此取消先前的请求.

最佳答案 Q>我基本上打断了执行它的前一个线程.在tomcat环境中这是一个好习惯吗?

A>我认为只要您对HTTP线程被阻止10分钟感到满意就行了.这意味着没有其他用户能够处理HTTP请求.否则,创建自己的线程池并进行管理.

Q>在tomcat环境中这是一个好习惯吗?

A>中断Runnables或Callables可能很棘手.例如,如果您的线程处于I / O操作的中间,则中断可能会使数据处于损坏状态.除此之外,这是很正常的做法.我还建议使用您自己的线程池,以便您的服务器容量可预测.

你能把你的大任务分解成很多小任务吗?坚持有条件并提前退出可能是中断的一个很好的选择.

或者,是等待/确保第一个任务完成操作而其他人只是在您的环境中返回相同的值有意义吗?如果是这样,我宁愿选择而不是你的方法.来自guava库的LoadingCache就是这样做的.

java取消_java – 取消之前的请求相关推荐

  1. Java 微信关注/取消关注事件

    Java 微信关注/取消关注事件 一.需求.思路 二.文档.配置 配置步骤1 配置步骤2 三.代码 1.引入依赖包 2.controller 3.封装消息对象 4.service.解密 5.工具包 一 ...

  2. java servlet获取url参数_Java Servlet如何获取请求的参数值?

    ## Servlet如何获取请求的参数 ## > 使用Request常用API来获取参数 > 这里演示的表单的提交 > 用到的是`getParameter()`和`getParame ...

  3. http java编程_Java编程:发送HTTP请求到服务器

    当Java程序需要向服务器发送请求或读取服务器数据时,使用URLConnection类是比较好的选择.URLConnection类封装了与服务器互动操作的方法,通过它可以建立与服务器的远程连接,检查服 ...

  4. java 常见几种发送http请求案例

    java 常见几种发送http请求案例 直接换成CloseableHttpClient还不行,需要这样使用CloseableHttpClient httpClient = HttpClientBuil ...

  5. mongodb java驱动_Java的MongoDB驱动及读写策略

    网上看见一篇博文,详细讲了MongoDB读写策略,将来生产会遇到类似的问题,转来备查. 指定新mongo实例: Mongo m = new Mongo(); Mongo m = new Mongo( ...

  6. Scala学习之 java.net.BindException: 无法指定被请求的地址: Service 'sparkDriver' failed

    在Scala本地运行时,出现无法指定被请求地址,通过朋友帮助终于解决问题` java.net.BindException: 无法指定被请求的地址: Service 'sparkDriver' fail ...

  7. 【源码+教程】Java课设项目_12款最热最新Java游戏项目_Java游戏开发_Java小游戏_飞翔的小鸟_王者荣耀_超级玛丽_推箱子_黄金矿工_贪吃蛇

    马上就要期末了,同学们课设做的如何了呢?本篇为大家带来了12款热门Java小游戏项目的源码和教程,助力大家顺利迎接暑假![源码+教程]Java课设项目_12款最热最新Java游戏项目_Java游戏开发 ...

  8. 语音验证java代码_Java代码示例_Java语音验证接口 | 微米-中国领先的短信彩信接口平台服务商...

    Java语音验证接口代码示例 请求 import java.util.HashMap; import java.util.Map; public class IvrDemo { /** * 语音验证接 ...

  9. java main 方法使用 HttpClients发送请求 不打印debug日志

    记录目的:java main 方法使用HttpClients发送请求不打印debug日志 记录背景: 使用java main方法测试接口响应时间 发现问题: 控制台打印巨多debug日志 解决方法: ...

最新文章

  1. vue vuex 挂载_Vue $mount()手动挂载
  2. (操作系统)实验二 作业调度
  3. nefu 628 Garden visiting
  4. 基于【IPv6】静态路由和默认路由的配置
  5. 原子变量、锁、内存屏障,写得非常好!
  6. 【rabbitmq】Authentication failed (rejected by the remote node), please check the Erlang cookie
  7. 语义化版本(semantic versioning)机制里的一些范围标识符
  8. TCP,UDP数据包的大小以及MTU
  9. 如何让小程序页面更顺滑_小程序怎样让wx.navigateBack更好用的方法实现
  10. MySQL修改,表结构大幅修改
  11. DataFrame的级联合并操作
  12. Python学习之购物车
  13. Node2vec原理剖析,代码实现
  14. 上号神器扫码登录网站使用教程
  15. Github渗透测试工具库
  16. 插入移动硬盘提示格式化怎么办?数据还有机会找回吗
  17. 审稿意见的“so what”如何处理?
  18. smb.conf - Samba组件的配置文件
  19. C++学习(二八一)Gradle下载目录里的随机码是什么
  20. git命令移动文件夹到另一文件夹

热门文章

  1. Redis安装部署配置说明
  2. Vue的报错Echarts Cannot read property ‘init‘ of undefined
  3. Go线程安全:我们不用考虑同步的问题 不用考虑数据污染的情况
  4. 函数的梯度方向和切线方向_高数下微课:11.3_6 二元函数的全微分求积例题
  5. vue 数组长度_深入理解Vue的数据响应式
  6. java script的图片隐藏,java和javascript中过滤掉img形式的字符串不显示图片的方法...
  7. oracle sql developer sid,登录 Oracle SQL Developer
  8. 不规则图形数格子的方法_小学数学,怎么数平面图形中长方形与正方形个数
  9. layui 行悬停显示工具_Minitab | 工具栏和状态栏
  10. 【mysql】table中添加列