如何通过 Google App Script 中的脚本终止正在运行的脚本?

问题描述 投票:0回答:1

在 Google 应用程序脚本中,我有一个正在运行的脚本,但有时我手动启动另一个脚本,然后我想中断正在运行的脚本。如何通过手动触发的脚本停止正在运行的脚本?

javascript google-apps-script
1个回答
1
投票

要从另一个脚本停止正在运行的 Google Apps 脚本,您可以使用存储在两个脚本均可访问的位置的共享标志,例如 Google 表格或脚本/文档/用户属性。该标志充当正在运行的脚本终止其进程的信号。这是一个基本方法:

  1. 设置标志: 使用 Google 表格或脚本/用户属性来存储标志。
  2. 检查脚本主要部分中的标志:定期检查主脚本中的标志。
  3. 从另一个函数更改标志:修改标志,指示主脚本停止。您可以通过几种不同的方式触发此停止功能:
    1. 通过 IDE 从主脚本运行该函数,或将其附加到按钮或自定义菜单(如果该脚本附加到文档或电子表格)。
    2. 将主脚本发布为库并将其添加到另一个脚本中。然后你可以从那里调用中断函数,如下所示:
    function stopMainScript() {
      // `MainScript` is the name of the library
      MainScript.stopMainScript()
    }
    
    1. 将主脚本发布为 Web 应用程序,并使用来自另一个脚本的 HTTP 请求来触发它。

代码

function mainScript() {
  // Resetting the stopFlag at the begging of the run,
  // assuming that it should not be cancelled manually.
  resetStopFlag();

  while (true) {
    // Your script's main logic

    if (checkStopFlag()) {
      console.log('Stopping script');
      break;
    }
  }
}

function checkStopFlag() {
  const scriptProperties = PropertiesService.getScriptProperties();
  const flag = scriptProperties.getProperty('stopFlag');
  return flag === 'true';
}

function resetStopFlag() {
  const scriptProperties = PropertiesService.getScriptProperties();
  scriptProperties.setProperty('stopFlag', 'false');
}

function stopMainScript() {
  const scriptProperties = PropertiesService.getScriptProperties();
  scriptProperties.setProperty('stopFlag', 'true');
}
© www.soinside.com 2019 - 2024. All rights reserved.