このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
13_javascript:03_gas:04_exceeded_maximum_execution_time [2023/03/11 02:49] – matsui | 13_javascript:03_gas:04_exceeded_maximum_execution_time [2023/03/11 03:23] (現在) – matsui | ||
---|---|---|---|
行 1: | 行 1: | ||
- | ====== 04 トリガーでExceeded maximum execution timeを対応 ====== | + | ====== 04 トリガーでExceeded maximum execution time対応 ====== |
GASでは6分以上スクリプトを実行できない。 | GASでは6分以上スクリプトを実行できない。 | ||
行 17: | 行 17: | ||
===== サンプルスクリプト ===== | ===== サンプルスクリプト ===== | ||
- | これで10秒スリープしながら、スプレッドシートへ1行づつ文字を挿入していく | + | これで10秒スリープしながら、30回スプレッドシートへ1行づつ文字を挿入していく |
30秒を超えるようなら、countへ行数を保存しつつトリガーへ設定して実行させる。 | 30秒を超えるようなら、countへ行数を保存しつつトリガーへ設定して実行させる。 | ||
設定したトリガーは5秒後に実行される。 | 設定したトリガーは5秒後に実行される。 | ||
行 40: | 行 40: | ||
var startTime= (new Date()).getTime(); | var startTime= (new Date()).getTime(); | ||
- | for(var | + | for(var |
var currTime = (new Date()).getTime(); | var currTime = (new Date()).getTime(); | ||
- | Logger.log(' | + | Logger.log(' |
if(currTime - startTime >= MAX_RUNNING_TIME) { | if(currTime - startTime >= MAX_RUNNING_TIME) { | ||
// 時間がなければトリガーセット | // 時間がなければトリガーセット | ||
- | setTrigger(currTime, | + | setTrigger(currTime, |
break; | break; | ||
}else{ | }else{ | ||
- | var array = [[' | + | var array = [[' |
- | sheet.getRange(ii, | + | sheet.getRange(i, |
ss.toast(ii + "/ | ss.toast(ii + "/ | ||
Utilities.sleep(10000); | Utilities.sleep(10000); | ||
// 時間があれば実行 | // 時間があれば実行 | ||
- | if( ii == 30){ | + | if( i == 30){ |
sheet.getRange(' | sheet.getRange(' | ||
} | } |