php - Shopify GraphQL Admin API 速率限制成本和 sleep 时间

标签 php laravel graphql shopify shopify-app

我正在尝试在 PHP ( Laravel ) 中使用 Shopify GraphQL API for Admin。
与 REST api 相比,GraphQL api 中的速率限制和节流的工作方式不同,其计算基于 费用 的查询。
Cost of Shopify GraphQL query

要记住的几点:

  • 一次 api 调用(查询)的最大可用成本为 1000。
  • 如果您消耗了 1000 点中的一些点数,则每秒将恢复 50 点数。
  • 如果您的存储桶中的成本点较少,并且您查询的成本高于该点,则它将受到限制。

  • 我传递给 api 的查询的估计成本为 502 ,表示为 请求查询成本 .而,实际查询成本 代表实际回复 由特定商店的 api 返回。

    在上面的快照中,它是最坏的情况,请求查询成本 等于 实际查询成本 对于订单量很大的商店。

    现在,当执行此查询时,我消耗了 502 点,还剩 498 点,经过 1 秒,添加了 50 点 = 548 ,我可以进行第二次 api 调用以获取第二页数据。在第二次 api 调用后,我剩下的点数会减少,所以我必须放 sleep 1 或 2 秒以获得进行 api 调用的积分。

    在快照所示的情况下,我必须输入 10 秒 sleep 等待以恢复 500分进行下一个 api 调用。
    问题:如何最好地决定不同商店的 sleep (等待)时间?我们不希望所有商店即使查询成本较低也需要等待 10 秒。
    注:有关代码引用,请参阅下面我的回答。

    最佳答案

    您将获得每家商店的成本电话 list 。如果一家商店的零钱,您可能还有 1000 件在另一家商店等着您。你应该确保你的调用机制很清楚!每个商店只睡一个线程。您应该能够将请求分配给一个线程,以便在它休眠时您仍然可以使用其他线程进行操作。如果 PHP 使用分配给所有请求的一个线程运行,我会笑死的。那将是 1982 年的计算!

    关于php - Shopify GraphQL Admin API 速率限制成本和 sleep 时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53469612/

    相关文章:

    php - Json_Encode php 最后一个逗号

    php - PHP 中的 undefined variable 错误

    javascript - 如何访问类中被单击的元素

    database - Eloquent 问题 : Undefined function: 7 ERROR: operator does not exist

    reactjs - 如何获取站点地图 Gatsby 的静态文件的更新/lastmod 值

    javascript - Drupal - 使用框架显示自定义 php/javascript?

    php - 在本地和远程开发环境之间同步数据库

    laravel - 计算属性返回未定义

    graphql - 如何在 GraphQL buildSchema 中使用联合

    react-native - GraphQL DynamoDB 架构中的默认主键?