如何处理来自外部源的慢速Web API

问题描述 投票:2回答:1

使用来自外部源(Steam)的Web API时遇到一个小问题。我需要对API进行多次调用并获取其结果,这会极大地减慢它,导致我的应用程序加载很长时间。

我正在使用Laravel作为我的应用程序。我想到了缓存结果并在后台获取新内容时向用户显示缓存(旧)结果,这在下一页加载时可见。这个问题是我第一次如何提高页面加载的速度,因为我必须以某种方式获取数据。

除此之外,我不知道如何提高我的表现。任何建议,将不胜感激!

php laravel
1个回答
3
投票

有很多方法可以解决这个问题,但如果目标是提高初始页面加载的速度,那么每个解决方案都将涉及使您的应用程序异步。

而不是等待第三方服务响应,dispatch a job获取数据。然后,您可以使用your cache的陈旧数据进行回复。如果缓存中没有数据,您可以向用户呈现加载消息,也可以同步调度作业,这将增加加载时间。

在客户端,您需要轮询新数据或use a websocket将数据推送到客户端。 websocket方法设置起来比较困难,但会减少对应用程序的请求,并使最终用户的响应更快。


根据您的具体用例,您可以进一步优化此方法。例如,如果您始终从第三方服务获取相同的数据集,则始终可以从缓存中提供数据并使用cron job刷新缓存。如果这对您来说是可行的解决方案,那么您不必担心调度作业或异步更新客户端。

© www.soinside.com 2019 - 2024. All rights reserved.