nginx - cURL Error: getaddrinfo() thread failed to start

nginx - cURL Error: getaddrinfo() thread failed to start

我是 运行 一家 WooCommerce 商店,有一个 Laravel 系统可以从我们的 ERP 系统中检索数据。这部分工作得很好。 Laravel 系统比较产品差异并将所有更改推送到 WooCommerce(产品更新等)。

当我查看日志时,其中许多 API 请求回复:"cURL Error: getaddrinfo() thread failed to start"。它是周期性的(不会在所有更新请求中发生)...如果我重新启动请求,它总是第二次成功。

我已经尝试 Google 任何相关问题,这似乎是我的 WooCommerce 上的配置问题(我自己使用 Plesk 托管它)。 DNS 由 Cloudflare 处理。 allow_url_fopen 已启用。我在 pm 中尝试了静态、按需和动态(PHP-FPM 设置)并重新计算了 pm.max_children 并增加了 pm.max_requests.

我已尝试续订 SSL 证书。

我试图查看日志以查看是否可以找到任何正在记录的内容,但这里没有任何有趣的内容。

WooCommerce 服务器专用于 64 GB mb 和 8 核 6700 intel,因此应该不是性能问题。

Laravel 在云服务器上 运行,2 个 vCPU 和 4 GB 内存。这些请求是使用 guzzle 完成的。

任何人都对这个错误有经验,可以指导我的方向吗?

我以为是接收器 (WooCommerce) 导致了这个错误,但看起来这个错误是由 Laravel 引起的。我的作业队列最初是用一个循环构建的,我在一个作业队列中迭代了所有 50.000 个产品,如果我将任务分成 50.000 个单个作业实例(每个作业 1 个更新),它会完成而不会留下任何错误。

我认为该错误与@cbr 指出的ulimit(同时打开的文件太多)有关,因为作业在 [=17] 时不会清理/关闭文件=].我使用了 https://github.com/Codexshaper/laravel-woocommerce but have changed to the native https://github.com/woocommerce/wc-api-php 包,这也可能会产生影响。每次发出请求时,Codexshaper 似乎都在创建一个新的 WooCommerce 客户端实例,我认为这可能会导致一些问题。