Java 读取数据库里有 50w 条网络图片记录然后下载到本地

2022-08-15 10:33:47 +08:00
 qwer666df
求效率最快的思路
1843 次点击
所在节点    Java
7 条回复
someonedeng
2022-08-15 11:06:51 +08:00
按批次 select 出来塞线程池跑就好了
lmshl
2022-08-15 11:26:56 +08:00
1. 选一个 reactive stream 库(比如 akka-stream )
2. 数据源(例如 jdbc )包装为 stream source (一般 reactive stream 已经有包装好的)
3. 在 mapAsync(parallelism = <根据你的网络与综合性能设定的并行度>) 中实现你的 http download (推荐 akka-http ) 逻辑
4. 把它润起来

优点是不需要管理线程池,全程异步,如果网速不快的话,那 CPU 会很低。如果网速足够快,CPU 也不会浪费在无意义的上下文切换
java253738191
2022-08-15 11:41:20 +08:00
datax+udf
qwer666df
2022-08-15 16:50:07 +08:00
@lmshl 这个好像很高级的样子我=看看

@someonedeng 目前先这么弄了..感觉很低级就是说
someonedeng
2022-08-15 22:23:56 +08:00
@qwer666df 50 万行又不多,随便搞搞就好了
letitbesqzr
2022-08-15 22:32:09 +08:00
50 多万 就别折腾了... 那些复杂的流程写完以后.. 开多线程都已经下完了
yuuyoo
2022-08-18 11:24:23 +08:00
导入迅雷批量下载

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/872897

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX