php - 在检查库存水平时,如何从 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 个请求,所以我永远不应该耗尽配额)。
解决方案
推荐阅读
- arrays - Apexchart xaxis 标签在 Reactjs 中显示为数字而不是字符串
- android - 按钮未添加到“总”文本视图中
- udp - 如果 UDP 发送方发送了太多接收方无法接收的信息,会发生什么?
- node.js - NodeJs错误检查用户是否使用绑定控制器进行了身份验证
- react-native - 显示多层次的 Json 数据
- c# - 我如何在一个视图中有两个模型类?
- r - 有比例表时如何绘图
- .net - 点网 XML 节点 Un-Escape 双引号
- javascript - 使用 javascript API 显示点云密度的问题
- javascript - jQuery 触发一个事件并接收它