繁体   English   中英

从rest api中检索大量数据

[英]Retrieve huge data from rest api

我打电话给第三方休息api.this rest api返回超过2千条记录,需要花费很多时间来检索这些信息。我想在asp.net页面中显示这些记录。 记录在页面中成功显示,但问题是显示/检索此信息需要很长时间。

我把这个api称为下拉更改,因此api调用可能会一次又一次。这意味着它不是一次性调用,而且我也无法缓存此信息,因为在服务器端可能会有信息发生变化。

那么我如何减少下载时间或任何技巧(不支持分页),任何建议?

提前致谢

那么我如何减少下载时间或任何技巧(不支持分页),任何建议?

如果API不支持分页,那么从消费者的角度来看,除了可能缓存数据以避免昂贵的HTTP调用之外,您所做的事情并不多。

没有奇迹。 没有client.MaxDownloadTimeMs属性,您可以将其设置为5 ,例如,在不到5毫秒的时间内获取大量数据。

对于任何给定的问题,总会有一个解决方法,即使它一眼就看不出来。

我遇到过这种情况,这就是我们所做的:

  • 首先,请记住, 实时一致性只是在没有编写大量代码的情况下无法实现的。 例如,如果用户从您的服务请求数据,然后在页面上呈现该数据,那么如果在更新源的精确时间,用户可能会看到数据外数据。

    所以我们需要接受的数据最终会保持一致

  • 然后考虑以下内容,定期使用外部服务复制数据库中的数据

  • 公开此本地数据,允许分页并从客户端代码中使用它

作为任何设计决策,您需要进行权衡以做出最终选择,这些是我们使用这样的设计所遇到的问题:

  • 当用户请求数据时,潜在的数据将不一致。 您可以每隔xxx分钟将数据轮询到服务器,具体取决于它的变化频率( 注意:通常我们作为开发人员,我们对这种数据不一致感到不满意,我们希望实时看到所有内容,但实际情况是最终用户,大部分时间都可以忍受这种延迟,因为这是他们在现实生活中使用的方式,请咨询最终用户以收集他们对此的观点。你可以阅读更多关于这个来自埃里克埃文斯的蓝皮书

  • 您必须编写额外的代码以在本地维护数据

遗憾的是,当您处理具有这些条件的第三方服务时,几乎没有可供选择的选项,我建议您与最终用户一起评估所有这些,以解决他们的权衡,以选择最适合您需求的解决方案

备择方案:

  • 既然我已经说过数据不会一直都是一致的,那么也许你可以考虑缓存对服务的调用=)

  • 通常最简单的方法总是面对这样的事情的最佳方式,因为你没有在你的帖子中提到它我会在这里评论。 您是否曾尝试向第三方组织请求允许分页? 与您的第三方合作伙伴联系并讨论此事。

  • 如果可以,请评估其他来源(提供类似服务的其他第三方公司)

您唯一的选择是将数据缓存一段时间。 如果第三方api有一个电话,您可以制作比您的下拉更改更通用的,您可以在页面加载之前调用它以获取所有可能的下拉值并将结果存储一段时间。 然后每次只返回适当的数据。

另外,看一下第三方api是否有任何gzipping(压缩)数据的选项,然后再发送给你。 我创建了几个API,并为大型数据集创建了这种类型的选项。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM