畅卓下载优化方案

一个定时线程池,两个forkjoin池

流程:定时任务,查库forkjoin池,存硬盘forkjoin池

好处:查库forkjoin线程固定对应连接池固定。存硬盘forkjoin可以大点。

可改进:定时任务分两步,查库以后丢到其他队列后可继续读库,其他队列线程继续存硬盘,提高吞吐量


2017年2月17日

当前方案:springboot收到请求->依次查询数据库生成文件

问题:

1,单词查询耗时过长,用户可能多次点击导致线程耗尽,数据库压力

2,当该业务堵塞会导致其他业务线程不够,最终会导致雪崩


跟同事聊了聊,这种及时性要求不高的东西应该异步

客户请求下载->数据插入下载表->异步单线程请求任务->forkjoin查库->合成结果,生成文件,更新数据库

优点:

1,异步后防止用户过度点击

2,forkjoin的数据库池线程数控制导致数据库压力可控

3,当前任务堵塞不会影响其他业务

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容