我必须使用WebClient进行分页API调用,并最终组合所有结果。例如:个人最新1000交易详情。在一次调用中,我将在json响应(List)中获得最大100个对象。这个人最多只能得到1000条记录。
在伪代码java中,它可能看起来像这样
int Total = 1000;
int maxEachCall = 100;
int noOfCalls = maxTotal/maxEachCall;
int startIndex = 0;
List<MyDto> mailList = new ArrayList();
for(int i =startIndex; i<noOfCalls ;i+100){
List<MyDto> list = webClient.get().uri(baseUri+"?startIndex"+startIndex)
.retrieve()
.bodyToMono(MyDto.class)
.retry(3)
.block();
mainList.addAll(list);
if(startIndex>900 || list.size()<100){
break;
}
}
如何在SpringMVC中以反应式方式编写相同的内容而不阻塞?
像这样的东西???我不知道。帮助我
int Total = 1000;
int maxEachCall = 100;
int noOfCalls = maxTotal/maxEachCall;
int startIndex = 0;
Flux.range(1,noOfCalls)
.flatMap(
// tried to call api using startIndex but can't use startIndex here or manipulate it
)
.doOnError(e->LOGGER.info("Exception occured ",e))
.blockLast(); ???
你可以做类似的事情:
Flux.range(0, 10)
.map(start -> start * 100)
.flatMap(
start -> webClient.get()
.uri(baseUri + "?startIndex=" + start)
.retrieve()
.bodyToMono(MyDtoCollection.class)
.map(c -> splitCollectionIntoIndividualMyDto(c)) //or something to that effect, since you'll get 100 `MyDto` at a time and presumably need to split them.
)
.collectList();
...这将为您提供一个Mono
问题内容: 我正在为我的系统中的实体实现“高级搜索”类功能,以便用户可以使用对该实体属性的多个条件(eq,ne,gt,lt,like等)来搜索该实体。我正在使用JPA的Criteria API动态生成Criteria查询,然后使用&支持分页。到现在为止一切都很好,但是现在我想在结果网格上显示结果总数,但是我没有看到直接获取Criteria查询总数的直接方法。 这是我的代码的样子: 我的结果集可能很
假设我有2个微服务A和B。现在对于服务A上的特定请求,A需要对B进行多个相同API的API调用(使用不同的参数)。最初,我使用模拟客户端在微服务之间进行Rest调用[隐式支持负载平衡、服务发现和添加端口元数据等来自模拟客户端]。 这种方法的问题是,调用是同步的,并且需要大量时间。如何/使用什么来触发多个请求并以非阻塞和异步的方式等待响应? TIA!
问题内容: 我想使用itext生成pdf。我会在某些时候添加内容以进行分页。我需要插入几个单独的conenidos依赖源,所以我要求用户在单独的页面上插入。有任何想法吗??? 问题答案: 调用告诉iText将后续对象放置在新页面上。仅当您放置下一个对象时,才会真正创建新页面。另外,仅在当前页面不为空白时创建一个新页面;否则,仅创建一个新页面。否则,它将被忽略;您可以用来克服这一点。 请参见下面的链
问题内容: 细节 来自应用程序的HQL查询: 查询返回300万条记录,而对于分页,我们仅设置了其中的50条记录,分页页面的运行速度非常慢,因为每次刷新时,我们都调用查询来获取300万条记录,而其中只有50条记录。 我的主要问题是 HQL是始终运行并命中数据库还是运行命中会话或内存以查找数据,如果它每次都运行时命中数据库并获取结果集,那么从性能的角度来看,这是非常合适的,什么是改进的最佳解决方案它?
问题内容: 问题 我需要在Django模板中使用jQuery进行Ajax分页。 情况 我的模板中包含以下代码: 和我的看法: 结论 因此,每当我按“下一步”时,它实际上会发出Ajax请求,但数据不会在表中呈现。 对于分页,使用django.core.paginator,我真的很愿意在可能的情况下坚持使用。 您能看到代码缺失/错误吗? 问题答案: 我没有发现错误,但下面向您展示如何解决此任务。我认为
我想用iText生成一个pdf。我会在某个时候添加内容以进行分页。我需要插入几个单独的conenidos依赖源,所以我要求用户在单独的页面上这样做。有什么想法吗???