php - 长时间等待后,如何让 webapp (PHP) 收到来自 API (Python) 的响应?
问题描述
我有一个用 PHP 编写的 Web 应用程序,在带有 NGINX 的 Linux Azure 虚拟机上运行。该应用程序使用 NGINX(类似 Linux Azure 虚拟机)连接到单独服务器上的 API(用 Python 编写)。此 API 执行复杂的操作,需要 30 秒到 20 分钟才能完成。所以应用程序必须等待它。
问题是等待时间很长,API 响应没有在 Web 应用程序中注册。我尝试了以下方法:
— 在 API 的端点和日志中验证 API 在长时间处理后提供响应(确实如此)
我怀疑这是一个超时问题,所以尝试过:
— 修复 PHP 超时设置和 /login_c/check_login
端点超时
— 检查从 API 发送和接收的请求和响应的代码,我使用 curl 方法。这是 curl 超时的参数:
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 0);
curl_setopt($ch, CURLOPT_TIMEOUT, 2100);".
exec 方法在后台执行:
exec($command);
以下文章没有提供解决方案:
PHP cURL 方法在某些 URL 上超时,但命令行始终有效
关于如何解决这个问题的任何建议?
解决方案
似乎这解决了问题:
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 0);
curl_setopt($ch, CURLOPT_TIMEOUT, 2100);".
推荐阅读
- laravel - 拉拉维尔 | 删除功能 - 如何从日历的事件中删除照片
- bash - 将批处理文件的简单行转换为 bash
- docker - Golang 的 Docker SDK 无法连接到覆盖网络内的守护进程
- cmd - 尝试在 Windows 命令提示符下创建菜单
- algorithm - 动态规划:如何解决大输入的所有组合有序硬币找零问题
- javascript - 如何使每个新输出出现在新框中?
- wordpress - 确切地说,什么时候应该减少库存?
- java - Java通过Socket高频发送短字符串
- shopify - Shopify 的订单打印机模板中的 HTML
- python - 使用公式自动从变量更新标签