我试图使用WebClient通过在POST请求中发送一个整数值作为JSON字符串来进行API调用。我有超过10万个值要发送请求。
使用WebClient对象实现此目的的最佳方法是什么?
当我在单线程循环中调用API时,使用WebClient对象作为示例变量,并为每次调用传递新的JSON字符串,这会花费大量时间。
使调用多线程是唯一的解决方案吗?或者有什么方法可以使调用更有效?
我试图使用WebClient通过在POST请求中发送一个整数值作为JSON字符串来进行API调用。我有超过10万个值要发送请求。
使用WebClient对象实现此目的的最佳方法是什么?
当我在单线程循环中调用API时,使用WebClient对象作为示例变量,并为每次调用传递新的JSON字符串,这会花费大量时间。
使调用多线程是唯一的解决方案吗?或者有什么方法可以使调用更有效?
1条答案
按热度按时间nr7wwzry1#
你还没有给出任何细节,你是如何得到你的整数的,但这里有一个简单的例子来实现你想要的。
基本上,你应该把你的整数转换为
Flux
,然后用.flatMap()
异步发送每个请求,并指定并发因子。从docs并发因子是:concurrency参数允许控制可以并行订阅和合并多少个Publisher。反过来,该参数显示向上游发送的第一个Subscription.request的大小。
代码看起来像这样:
字符串