首页 > 解决方案 > 在检查库存水平时,如何从 Shopify API 中找到这种间歇性故障/空响应的原因

问题描述

在使用 php 库 ( https://github.com/phpclassic/php-shopify ) 访问 Shopify API 时,我偶尔会收到Code 520调用 API 端点以检查特定产品/变体的库存水平的响应地点。我知道代码 520 是 Cloudflare 通知我它从服务器收到失败或空响应,我正在寻求了解失败的原因。

一般来说(除了这些偶尔的失败)API 响应运行良好。调用失败的概率约为 1000 次调用中的 1 次(但不是定期间隔,而是该数量级)。注意:如果我记录调用的细节并手动重新创建确切的请求,它工作正常,所以它似乎不是调用的结构或有效负载等。

失败响应是这样的:

PHP Fatal error: Uncaught PHPShopify\Exception\CurlException: Request failed with HTTP Code 520. in /var/www/html/vendor/phpclassic/php-shopify/lib/ShopifyResource.php:489 Stack trace: 
#0 /var/www/html/vendor/phpclassic/php-shopify/lib/ShopifyResource.php(315): PHPShopify\ShopifyResource->processResponse(NULL, 'inventory_level...') 
#1 /var/www/html/invconnect/const_inventorypull_shopify.php(308): PHPShopify\ShopifyResource->get(Array) 
#2{main}thrown in /var/www/html/vendor/phpclassic/php-shopify/lib/ShopifyResource.php on line 489 
 

看起来有来自库存水平检查的 NULL 响应,有问题的检查形成如下:

$params = array([inventory_item_ids] => "3439123438412, 34399123471552, 34399412304023", [location_ids] => "31741235383");

$result= $shopify->InventoryLevel->get($params);

这个请求对数百个项目运行良好,然后它会给出上面的响应 - 知道我如何调试这个或可能导致它的原因吗?

该请求的速率限制为每 0.6 秒 1 次,因此不应该是速率限制问题(因为漏桶配额允许每秒 2 个请求,所以我永远不应该耗尽配额)。

标签: phpapishopify

解决方案


推荐阅读