为了账号安全,请及时绑定邮箱和手机立即绑定

多线程业务处理逻辑

多线程业务处理逻辑

幕布斯7119047 2019-01-16 10:56:03
1、springboot项目,post请求接口里面有一个 new Thread(new Runnable(){ //业务逻辑 })意思就是前端每次请求接口都会开启一个线程进行业务逻辑处理。这样处理是因为线程里面的业务处理很耗时间(基本在半个小时左右),由于体验不允许一致卡住,所以在开启线程进行业务处理,接口返回一个标识,前端可以通过标识再另外的接口中进行业务中线程执行的百分比进行查看,线程业务逻辑里面有执行的阶段进行更新在数据库中,空另外一个接口进行查询。2、线程里面的业务没有类似while(true){}相关的语句,因为执行业务中处理的业务和查询耗时,执行完成线程就结束。3、目前的问题是前端如果并发请求(30次),之后在请求接口将无响应,重启正常4、我自己大致知道应该为线程中内存没有释放,但是不知道怎么进行优化5、主要想问的是对于这种处理耗时的请求应该怎么处理相对较好;让后对于线程的内存处理应该怎么处理和释放。
查看完整描述

3 回答

?
ITMISS

TA贡献1871条经验 获得超8个赞

用线程池吧,另外要判断任务是否逻辑上重复,重复的话要忽略后续请求

查看完整回答
反对 回复 2019-03-01
?
幕布斯6054654

TA贡献1876条经验 获得超7个赞

如楼上所说,可以用线程池处理。并用future来处理返回结果。
如果要高级一点的话。就使用消息中间件。实现请求异步。削锋填谷

查看完整回答
反对 回复 2019-03-01
  • 3 回答
  • 0 关注
  • 676 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信