加速Podio API

时间:2018-03-12 08:29:53

标签: api podio

上下文

我们将Podio与Globiflow和Webmerge结合使用,它大部分时间完全符合我们的需要,但现在我们开始达到Podio API的极限。

问题

在前端门户网站中,我们向客户展示了podio数据。这变得非常慢......我们做了一些负载测试/计时。 更确切地说;例如,此调用需要20秒:

\ PodioItem :: filter(19087964,[' filters' => [' request-sent-to' => [$ company-> id],], '限制' => 200,' offset' => 0]);

问题

我们可以做些什么来加快速度?

Fyi:我们确实应用了所有标准内容来减少API使用并优化我们的调用,例如:

  • 避免在循环内部发出API请求。而不是取物 循环内的单个对象,获取对象的集合 一个API操作。例如。过滤项目
  • 尽可能缓存结果。当你这样的时候尤其如此 向公众显示数据(即每个人都看到相同的输出)。

  • 不要轮询更改。而不是轮询Podio,看看你的 内容已更改使用webhooks或推送以接收通知。

  • 使用记录功能查看您正在制作的请求数

  • 使用"字段"捆绑回复参数

1 个答案:

答案 0 :(得分:1)

你可以尝试更多的东西:)

  1. 如果您不需要使用相同的过滤结果,请将'remember' => false添加到您的通话中。 'Remember'标志导致Podio API缓存过滤结果需要时间。
  2. 'limit' => 200更改为更小的内容(如果您实际上并不需要所有200个项目,只显示30,则不要获取它们。)
  3. 限制返回的数据量(Can podio's api filter item response with only a mini detail level for each item?
  4. 更好的方法是缓存结果,并且只请求自上次运行脚本以来已更改的项目。每次运行都能获得所有物品,这是非常浪费的。从您的请求看起来您还没有使用过webhooks。
  5. Podio API无法替代自己的数据库。如果您觉得使用Podio API时可以通过使用自己的数据库轻松实现相同的目的 - 那么您的感觉是正确的。设置数据库并移动您需要在那里查询的所有数据,然后设置一些可用于webhooks的同步层,并将更改从Podio API复制到您的数据库。