【问题标题】:WordPress REST API first call always slowWordPress REST API 第一次调用总是很慢
【发布时间】:2020-09-03 19:31:19
【问题描述】:

我正在分析/故障排除一个自定义 WordPress 插件,该插件是为一个客户端开发的,该插件实现了 REST API 以与第三方提供商一起使用。其中一项要求是在 1 秒内执行所有 API 调用。

目前该插件提供注册 2 条路线:“获取用户”和“创建用户”。为了使这个问题简单,我将专注于第一条路线,因为它更简单。

“获取用户”的平均执行时间约为 0.5 秒,但第一次调用总是需要更多时间,最多 5 秒。所有进一步的调用始终在 ~0.5 秒范围内。如果 API 大约 1 分钟未使用,则下一次第一次调用再次需要 5 秒才能完成。

这让我相信在有限的时间段(~1 秒)内有某种缓存可用,或者托管(SiteGround)/数据库有睡眠策略,但我无法确认。为了找出答案,我确实创建了一个自定义的普通 PHP 脚本,它模仿了与“获取用户”相同的功能,平均响应时间约为 0.15 秒,但第一次调用的时间也超过平均水平:~0.6 秒。

对于我们的案例,自定义脚本可能是一种可能的解决方案,但我们首先想尽一切可能使 WordPress 插件 + REST API 在可能的情况下在不到 1 秒的时间内工作。

  • 似乎在使用 REST API 时,会根据 2016 年的 blog 加载一堆 WP 文件。现在这仍然适用于 WordPress 5.5 吗?
  • 第一次调用需要更多时间的确切原因是什么?以及如何优化它以供进一步调用?

【问题讨论】:

    标签: wordpress wordpress-rest-api


    【解决方案1】:

    WordPress API 有一个缓存系统,我给你推荐这篇文章:https://css-tricks.com/the-deal-with-wordpress-transients/

    但您可以采取一些措施来提高性能,首先是检查您的主机。根据您的提供商,您可能会遇到一些未缓存的响应时间问题。

    另一个更复杂的解决方案是从 WP 编写您自己的自定义 API 响应。有些插件可能有助于简化开箱即用端点的响应,这里有一个:https://wordpress.org/plugins/custom-api-for-wp/

    如果你走这条路,请确保遵循 WP 和 PHP 的良好安全实践。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-31
      • 1970-01-01
      • 2017-05-23
      • 2018-06-02
      • 2013-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多