我正在尝试在 PHP ( Laravel ) 中使用 Shopify GraphQL API for Admin。
与 REST api 相比,GraphQL api 中的速率限制和节流的工作方式不同,其计算基于 费用 的查询。
要记住的几点:
我传递给 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/