![](/style/images/good.png)
3
![](/style/images/bad.png)
有没来比拼 commit 的,重在真实
source link: https://www.v2ex.com/t/805261
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
21 条回复 • 2021-10-01 00:46:58 +08:00
gollwang 17 小时 36 分钟前
kastnerorz 16 小时 5 分钟前 1
- Guava 的 `Lists.partition()` 可以解决你的这个分片的问题
- 不太懂的是,已经 `runAsync`了,为什么要 `Thread.sleep()`,循环里只是添加任务而已,并没有执行任务
- 而且非常不建议在循环里使用 sleep,如果一定要隔一段时间执行一个任务请使用 `ScheduledExecutorService`
- 不太懂的是,已经 `runAsync`了,为什么要 `Thread.sleep()`,循环里只是添加任务而已,并没有执行任务
- 而且非常不建议在循环里使用 sleep,如果一定要隔一段时间执行一个任务请使用 `ScheduledExecutorService`
yidinghe 15 小时 27 分钟前
不管出于什么原因,你这么改的目的显然是进行调用限流。然而这不是限流的标准做法,标准做法是先将循环内的部分提取出一个方法,然后使用 sentinel 之类的框架来限流。
ChovyChu 15 小时 4 分钟前
统一回复一下吧,这个是我刚接手的一个项目,最近经常会做一些 review 和看一些老代码,当时就看到这里。
不知道大家有没看明白这个 commit 到底是在改做什么。
我当时看到这里就很疑惑,想了半天才发现这里他其实就是希望做一个每批任务处理完成之后做一个 sleep 延迟。就是这么简单一个功能尽然写了一大堆,结果还是错的。
另外就是我想了一下确实我这图可能没体现出来重点。。
不知道大家有没看明白这个 commit 到底是在改做什么。
我当时看到这里就很疑惑,想了半天才发现这里他其实就是希望做一个每批任务处理完成之后做一个 sleep 延迟。就是这么简单一个功能尽然写了一大堆,结果还是错的。
另外就是我想了一下确实我这图可能没体现出来重点。。
AoEiuV020 12 小时 0 分钟前
是时间祭出我印象最深的两个极大幅优化了,
一个是把字符串拆成字符遍历,再把字符转成字符串用正则判断是否中文,而且正则还不预编译,
?1
一个是数据库查个 count 直接查出所有数据再遍历,还在每个循环节调用三次 queryForAll 完整读取 3n 次数据库,
?1
一个是把字符串拆成字符遍历,再把字符转成字符串用正则判断是否中文,而且正则还不预编译,
?1
一个是数据库查个 count 直接查出所有数据再遍历,还在每个循环节调用三次 queryForAll 完整读取 3n 次数据库,
?1
astkaasa 10 小时 29 分钟前
我一般这么写
IntStream.range(0, (list.size() + BATCH - 1) / BATCH)
.mapToObj(i -> list.subList(i * BATCH, Math.min(list.size(), (i + 1) * BATCH))).forEach(batch -> {
});
IntStream.range(0, (list.size() + BATCH - 1) / BATCH)
.mapToObj(i -> list.subList(i * BATCH, Math.min(list.size(), (i + 1) * BATCH))).forEach(batch -> {
});
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK