【问题标题】:Google Script code running forever - How to terminate - calling Urlfetch constantlyGoogle Script 代码永远运行 - 如何终止 - 不断调用 Urlfetch
【发布时间】:2021-06-18 05:30:11
【问题描述】:

我在“Google Workspace Marketplace”中有一个用于表格的 Google 应用脚本 (GAS) 插件。
调用 Urlfetch 以从我们的 API 获取数据的脚本。

一位用户创建了一张现在永远调用 API 的工作表。 用户没有在任何网络浏览器中打开工作表。

我可以在日志中看到 API 调用永远不会停止。每天超过20k。 我与用户交谈并检查了他的工作表。没有触发器或循环。在我的帐户中,用户表工作正常。

对于这个用户,我可以做些什么来阻止这个脚本永远运行?
Google Admin 中有什么方法可以阻止脚本运行吗?

感谢您的帮助,

兄弟, 亨里克

【问题讨论】:

  • 必须是客户端?用户 Sheet 调用 Urlfetch 从 API 获取数据。但我知道 Urlfetch 正在 Google 服务器上运行,所以我猜服务器陷入了某种永恒的循环?
  • 代码挺大的。是 - 调用 API 的自定义函数。用户添加 API 密钥的自定义菜单。
  • 我认为 Urlftech 的 Google Server 句柄挂了。它永远不会停止。今天我尝试创建一个新版本的 Addon 来查看 API 调用是否停止。它没。它继续。很奇怪。
  • 是什么触发了这个功能?当您说I can see in Logs that the API calls never stops 时,您的意思是应用程序脚本或 API 中的日志?在 Apps Script 中,您看到函数执行了多次?
  • 用户可以从自定义函数或菜单“刷新”按钮触发 URL 获取。在这种情况下,它不知道这些功能是如何被触发的。用户表有大约 1000 个 API 调用(大表),我可以在 Google Apps 脚本日志中看到调用在循环中。日志中有 1000 个调用,然后停止并等待大约 20 分钟的随机时间,然后重新开始。今天,我在过去 24 小时内从这张表中收到了 30k 次 API 调用。我不知道如何阻止它。

标签: google-apps-script google-sheets infinite-loop terminate


【解决方案1】:

您的 Apps 脚本文件可以“查看”您的插件用户的代码执行情况。您也可以终止执行。

打开您的项目列表: https://script.google.com/home/my

找到您的插件所基于的项目。
单击右侧的 3 个点。
选择“执行”
点击带有加号的“添加过滤器”按钮。
选择“运行方式”。
选择“任何人”
单击应用。
您将看到正在从您的附加用户运行的执行。
再次单击过滤器地址栏以添加另一个过滤器。
选择“状态”。
点击“正在运行”复选框。
如果您看到运行时间很长,请单击 3 点图标。
选择
终止

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-26
    • 2015-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-18
    • 2014-05-13
    • 1970-01-01
    相关资源
    最近更新 更多