1
私はUrlFetchApp.fetchメソッドを100 + URLの配列で正しく動作させる方法を見つけようとしています。スクリプト。私はエラー429(あまりにも多くの要求)をヒットするか、繰り返しの間に何らかの睡眠を入れた場合、URLFetchAppの時間は、各呼び出しが8秒以上かかるまで持続的に増加し、6分のタイムアウト制限に達しました。ここに私のコードがあります。どんな入力も感謝します。Google Appsスクリプト、多数のURLを持つUrlFetchApp.fetchを使用
function migrateSheetsToFiles() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var ssId = ss.getId();
var parentfolder = DriveApp.getFileById(ssId).getParents().next();
var mySheets = ss.getSheets();
var fileID = ss.getId();
var FetchArray = [];
var sheetnameArray = [];
var responseArray = [];
var params = {
method : "GET",
headers : {"authorization": "Bearer " + ScriptApp.getOAuthToken()}
};
for(var i=0; i<mySheets.length; i++){
var currentSheet = mySheets[i];
var sheetname = currentSheet.getName();
sheetnameArray[i] = sheetname;
var currentSheetId = currentSheet.getSheetId();
var url = "https://docs.google.com/spreadsheets/d/" + fileID + "/export?format=xlsx&gid=" + currentSheetId;
FetchArray[i] = url;
}
for (i=0; i<FetchArray.length; i++) {
responseArray = UrlFetchApp.fetch(FetchArray[i], params);
Utilities.sleep(1000);
}
for (i=0; i<FetchArray.length; i++) {
parentfolder.createFile(responseArray[i]).setName(sheetnameArray[i]);
}
}