【发布时间】:2022-01-28 02:20:45
【问题描述】:
我有一个 node.js GET API 端点,它调用一些后端服务来获取数据。
app.get('/request_backend_data', function(req, res) {
---------------------
}
当从后端服务返回响应存在延迟时,此端点(request_backend_data)将在 2 分钟后准确触发。我检查了我的应用程序代码,但是当有延迟时,任何地方都没有写重试逻辑。 在任何情况下(如延迟或超时)是否会调用 node.js API 端点两次?
【问题讨论】:
-
Nani,尝试使用 Wireshark 或 Charles(对于 mac)检查线路中的情况。这些应用程序可以向您显示所有带有时间码的 http 请求。
-
你检查过第一个和第二个请求的请求数据,是一样的吗?怎么理解endpoint被调用了两次,能否提供一个伪代码?
-
第一个和第二个请求的请求数据相同。请参阅以下日志 [2022-01-13 15:25:29.901] [INFO] api.js - 触发 API######################### ################# [2022-01-13 15:25:31.026] [INFO] service.js - 后端_service :: 成功获取数据。 [2022-01-13 15:27:29.902] [INFO] api_dashboard.js - 触发 API############################# ##############
-
1.您是否直接调用端点
request_backend_data,中间没有任何第三方服务器,如代理、负载平衡器或路由器? 2. 由于第 3 方的延迟,当您的代码中未处理传入请求时,可能是内部配置错误,然后请求被重新路由回同一端点? 2 分钟看起来像一些默认的 http 请求处理超时。您的处理程序和快速路由器配置的源代码会有所帮助。
标签: node.js rest http callback get