mikicomo 最近的时间轴更新
up
2016-08-13 13:56:03 +08:00
mikicomo
ONLINE

mikicomo

May the force be with you.
🏢  Trip.com / 后端工程师
V2EX 第 112291 号会员,加入于 2015-04-21 14:13:15 +08:00
今日活跃度排名 1249
9 G 31 S 27 B
根据 mikicomo 的设置,主题列表被隐藏
二手交易 相关的信息,包括已关闭的交易,不会被隐藏
mikicomo 最近回复了
这里展开说一下,其实自己项目使用自己封装过后的线程池是个好习惯,不过如果只是为了控制线程池个数的话,那倒也大可不必,原生的配置也蛮好。
一般我们遇到自己封装线程池的场景,主要是为了传递一些系统中的参数,比如你既然是个异步任务,如果是由外部的一个请求触发的,再这样的场景下,我们做全链路日志会比较麻烦,因为原生线程池是不会传递 jvm 参数的,所以需要我们封装一下,这样就可以方便的在日志系统中通过一个 logid 搜索全链路日志了。

另一个好处是,自己封装的线程池,我们也可以方便做一些 feature 进去,比如动态扩容,缩容线程池,如果一开始都用了系统的,没有统一收口的话,就会比较麻烦
另外,sendMsgBatch 方法中循环调用了 this.sendTemplateMsg ,注意同个类下,两个 async 方法相互调用时,@async 会失效,如果作者没有在 sendMsgBatch 另起 TaskExcutor 的话,可能和它的本意不符了( sendMsgBatch 本身虽然是异步,但是内部的循环执行降级为了同步,线程也占用了很久),现在作者的这种写法,是把压力都丢给了 TaskExcutor ,让他慢慢去执行,@async 开出的线程池立马就释放了

道理是这个道理,但是这么写,其实也不是很建议就是了
简单看了下,作者应该是希望用 TaskExcutor 中统一管理的线程池去执行系统中的任务,那么从这点看 sendTemplateMsg 上加 @Async 的确有点画蛇添足了,TaskExcutor.submit 直接提交任务即可。

那么关于这个 @Async 注解为什么这里还加了呢,我个人猜测是,是不是第一版的时候并没有 TaskExcutor ?后来才单独抽出来改造了一版?建议可以看看 git 提交记录,这里我也没 down 代码下来看,不负责任猜测一下😂
jojo
fate 系列
命运石之门
冰菓
104 天前
回复了 devilte 创建的主题 职场话题 各位开工利是都领了多少哇
0
116 天前
回复了 Part2 创建的主题 职场话题 26 了,有必要镀个金吗
建议学习向上管理。
137 天前
回复了 shaojz2005 创建的主题 Windows wps 可以取代 office 吗?
广告可以关,#68 楼已经说了,就我旁边的同事和我个人,以及一些教师朋友反馈下来,wps 足矣,用着都感觉不错
两张表是否有主次之分?

如果有,并且分页查询条件是否都是取得主表的字段,那么先查完主表再关联查从表就好了。

如果没有,数据量小,无性能要求,视图

如果没有,数据量大,性能要求高,上 es (但是这样会有延迟问题,是否可接受)
关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2592 人在线   最高记录 5497   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 10ms · UTC 07:58 · PVG 15:58 · LAX 00:58 · JFK 03:58
Developed with CodeLauncher
♥ Do have faith in what you're doing.