gpt4 book ai didi

php - 使用 Shopify API 获取所有产品(超过 50,000)

转载 作者:行者123 更新时间:2023-12-04 00:30:18 30 4
gpt4 key购买 nike

我正在尝试使用 Shopify API 在我的应用中获取 Shopify 商店的所有产品。我有以下代码来逐页获取所有产品。该脚本在某个时间点中断,但我不确定在哪里。我怎样才能制作一个完整的脚本来一次获取所有产品而不会中断。

这是我目前所拥有的:

$ch = curl_init();
for ($i=1; $i<=1000; $i++)
{
curl_setopt($ch, CURLOPT_URL, "https://API:PASS@store/products.json?page=$i");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_TIMEOUT, 20);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 20);
$res = curl_exec($ch);
$res=json_decode($res, true);
foreach($res as $products) { // A different example
foreach($products as $product) {
$title=$product['title'];
}
}
sleep(1);
}
curl_close($ch);

最佳答案

您可能已达到 Shopify API 调用限制。所以你可能需要使用队列。以下是 Shopify API 限制计算的工作原理:

Shopify 使用漏桶算法,桶大小为 40 次调用,泄漏率为每秒 2 次。

它是如何工作的:

  • 你的每一次调用都会增加一个虚拟桶的等级
  • 水桶每半秒漏一次水,水位就会降低一
  • 只要存储桶有空间,您的调用就会立即得到处理,否则您会收到 429 错误
  • X-Shopify-Shop-Api-Call-Limit header 将指示当前级别和桶大小为“x/40”

这对您的应用意味着什么:

  • 您可以在一秒钟内发出最多 40 个调用。他们都会立即处理
  • 一旦达到限制,将需要 500 毫秒才能允许另一个调用通过
  • 只要您保持在平均每秒 2 次调用以下,您就不会达到限制
  • 这实际上每 5 分钟每家商店最多可调用大约 600 次电话

关于php - 使用 Shopify API 获取所有产品(超过 50,000),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28980206/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com