Java 同时调用 5000 个第三方接口并异步返回每个接口的执行结果,如何实现?

2022-09-27 15:39:40 +08:00
 wenbingkun
同时调用 5000 个第三方接口,异步获取每个接口执行结果,有什么好的 Java 实现思路吗?
每个接口的执行时间大概在 5 分钟以上
7213 次点击
所在节点    Java
81 条回复
hex2en
2022-09-27 15:40:53 +08:00
直接用异步会有问题吗?
wenbingkun
2022-09-27 15:49:37 +08:00
@hex2en 还没开始写,所以不知道会不会有什么问题,想问下大家有没有好的思路
Red998
2022-09-27 15:50:56 +08:00
外星接口 外星需求
huanglongtiankon
2022-09-27 15:56:34 +08:00
不是,整整跑 5 分钟到接口是什么鬼,你这个接口本身不做异步的吗,真正要做异步的是你这个要跑整整 5 分钟到接口吧
hex2en
2022-09-27 15:56:48 +08:00
@wenbingkun 自定义一个线程池,直接搞异步先写再说。不过直接请求 5000 个接口这种情况,还是先考虑下设计有没有问题吧
muchenlou
2022-09-27 15:58:27 +08:00
不能使用回调的方式,去接受执行结果吗?
Jooooooooo
2022-09-27 16:01:17 +08:00
先考虑一下需求和实现的合理性?

5000 个调用可能内存要爆了.
zmal
2022-09-27 16:02:42 +08:00
AIO 、kotlin 协程,akka
Vegetable
2022-09-27 16:07:17 +08:00
什么逆天需求。

本身如果不考虑异常情况,这需求 2 个和 5000 个没什么区别,直接用多线程未尝不可,不过线程太多了很不划算,找个协程方案就行了,kotlin 挺好的。
xuelu520
2022-09-27 16:09:50 +08:00
我也好奇这是什么需求?
ourslay
2022-09-27 16:12:13 +08:00
做好重试,可以试试 loom 虚拟线程很丝滑
tramm
2022-09-27 16:13:12 +08:00
Forest 试试呢
wenbingkun
2022-09-27 16:15:19 +08:00
@hex2en 目前是准备先自定义线程池然后异步

@huanglongtiankon 确实要跑这么久😂

@muchenlou Callable 应该也可以
oneisall8955
2022-09-27 16:20:22 +08:00
把这需求砍了吧
edotac
2022-09-27 16:22:54 +08:00
一般是第三方接口做回调...
mingsz
2022-09-27 16:25:29 +08:00
控制好并发吧,一个请求 5 分钟到时候别第三方崩溃了
unco020511
2022-09-27 16:26:40 +08:00
第三方没有提供回调形式吗
li24361
2022-09-27 16:26:54 +08:00
考虑用 mq 呗
v2eb
2022-09-27 16:29:34 +08:00
详细说下需求吧, 真想看看, 🐒
angryfish
2022-09-27 16:38:26 +08:00
详细说下需求,很感兴趣,这个五分钟的接口是干嘛的

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

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

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

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

© 2021 V2EX