NodeJS 进行Google Sheets V4 API调用时的高度可变延迟

8ulbf1ek  于 2023-06-22  发布在  Node.js
关注(0)|答案(1)|浏览(109)

我有这样的代码:

var latency = Date.now();
  const sheetFile = await google.sheets({version: 'v4', auth});
  var result = await sheetFile.spreadsheets.values.get({spreadsheetId: sheetID,range: "TabName!A1:ZZ",});
console.log("tab read latency:",Date.now() - latency)

我在Heroku dyno上运行的node.js应用程序中调用了它。我看到的延迟从<500ms to >50000 ms不等,阅读相同的数据。如果我在30秒内没有完成交易,Heroku会超时并向浏览器发出503“应用程序错误”,我们经常看到这个错误。
这款应用已经运行了好几年,延迟问题在过去两周才出现。这恰好与我们的生产率的增加相吻合,但不是那么多(~X3),我可以想象我们把他们的服务器上的负载!
这个电子表格大约有500行X20列,我们每分钟请求它4到5次。
我的选择是以某种方式减少延迟或重构(代码 * 和 * 管理:-)以完全消除表单。有没有一种方法可以支付谷歌改善延迟?Google的销售人员把我介绍给开发人员,开发人员又把我介绍给销售人员,所以我在这里尝试。
以下是我看到的延迟示例:

sulc1iza

sulc1iza1#

有问题的电子表格原来有很多公式,从其他电子表格(反过来又有公式和导入等)导入,所以工作表本身只是响应缓慢。随着我们的产量增加,随着更多的数据被推进来,这种缓慢程度也会增加。(* 我没有做这个电子表格 *:-)
延迟问题似乎与电子表格的排队/锁定有关。有两种方法可以解决延迟问题:
1.减少电子表格正在完成的工作量
1.停止从电子表格中阅读
我采用了第二种解决方案,因为管理层非常喜欢他们设计的电子表格(这是管理层的习惯),并且通过一些额外的工作,我可以从其他地方获得我需要的信息。

相关问题