如何根据执行日志信息重新运行和停止应用程序脚本?

How to rerun and stop app script based on the execution log info?

我正在寻找 运行 下面带有多个变量 url 的应用程序脚本,例如

https://www.testurl.com/link1=processing

https://www.testurl.com/link2=processing

https://www.testurl.com/link3=processing

如何将多个 url 添加到以下代码:

function url() {
      var url = 'https://www.testurl.com/link1=processing';
    
      var options = {
        'method': 'get'
      };
      var response = UrlFetchApp.fetch(url, options);
      Logger.log(response);
    }

带有单个 url 的每个 运行 显示在执行日志下方

3:33:30 AM  Notice  Execution started
3:33:31 AM  Info        {"status":200,"message":"Import 25 of 200 completed."}
3:33:31 AM  Notice  Execution completed

我正在寻找第一个 url 的重新 运行 脚本,直到我收到包含“未触发”的日志消息,然后 运行 第二个 url 和重新运行 直到我收到包含“未触发”的日志消息然后 运行 第三个 url 和 re运行 直到我收到包含“未触发”的日志消息并且然后停止。

3:33:30 AM  Notice  Execution started
3:33:31 AM  Info        {"status":403,"message":"Import #16 is not triggered. Request skipped."}
3:33:31 AM  Notice  Execution completed

我真的没有办法测试这个,但我认为它说明了如何做到这一点:

function getUrls() {
  try {
    var urls = [ 'https://www.testurl.com/link1=processing',
                 'https://www.testurl.com/link2=processing',
                 'https://www.testurl.com/link3=processing' ];

    function getUrl(url) {
      var options = { 'method': 'get' };
      var response = UrlFetchApp.fetch(url, options);
      while( response.message.indexOf("is not triggered") < 0 ) {
        Logger.log(response);
        response = UrlFetchApp.fetch(url, options);
      }
    }

    urls.forEach( getUrl );
  }
  catch(err) {
    Logger.log(err);
  }
}