问题描述
我正在使用实现HATEOAS的API(这不是我自己的,因此我无法更改任何内容)。我通过GET收到的JSON文件如下所示:
{
"_links": {
"_children": {
"child1": {
"href": "/document/child1"
},"child2": {
"href": "/document/child2"
},...
这意味着,首先,我调用根组件,从中获得所有子项的链接,然后再调用每个子项的URL来获取其子项,依此类推。
这并不是真正有效的方法,因为有时有数百个孩子,而一个请求大约需要250毫秒。目前,我使用一个递归函数来进行这样的调用(Blazor WebAssembly):
response = await _httpClient.GetAsync(rootUrl + child.HRef);
我正在使用System.Net.Http.HttpClient。现在我想我可以并行进行所有这些调用以节省时间。我找到了一些解决方案,当您已经知道URL时如何发出并行请求(例如http://www.michalbialecki.com/2018/04/19/how-to-send-many-requests-in-parallel-in-asp-net-core/),但是如果每次调用后都获得URL,则没有很好的解决方案。
我想到了为根组件的每个子代创建一个线程,然后为子代的每个子代创建线程,直到达到最大并行调用的次数。
我不确定如何实现这样的功能,如果有人有答案,我会很高兴。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)