google app scriptで、PHPを作動させDBからデータをDL 、スプレッドシートに書き込みをさせていますが
record.setValues(new Array(data[ii])); の行に対して「同時呼び出しの数が多すぎます」という
エラーがでます。
毎回出るエラーではなく、1時間に1回の時間設定トリガーで動かしているうち1日に数回分(ランダム)が
このエラーになります。
解決策をご存知の方がいらっしゃいましたらご教示いただきたいです。
よろしくお願いします。
function load_csv(){
var url = 'https://';
var sheet_name = 'master';
var csv_txt = download_csv(url);
var data = CSVToArray(csv_txt, ',');
var book = SpreadsheetApp.getActiveSpreadsheet();
var sheet = book.getSheetByName(sheet_name);
var record;
for (var ii=0; ii < data.length; ii++){
record = sheet.getRange(ii+2, 3, 1, data[ii].length);
record.setValues(new Array(data[ii]));
}
}
function download_csv(url) {
var url001 = 'https://';
var user = 'user';
var password = 'pass';
var options = {
"headers" : {"Authorization" : " Basic " + Utilities.base64Encode(user + ":" + password)}
};
var res = UrlFetchApp.fetch(url001, options);
var content = res.getContentText('Shift_JIS');
return content.toString();
}
function CSVToArray( strData, strDelimiter ){
strDelimiter = (strDelimiter || ",");
var objPattern = new RegExp(
(
"(" + strDelimiter + "|\r?\n|\r|^)" +
"(?:\"([^\"]*(?:\"\"[^\"]*)*)\"|" + "([^\"\" + strDelimiter + "\r\n]*))" ), "gi"
);
var arrData = [[]];
var arrMatches = null;
while (arrMatches = objPattern.exec( strData )){
var strMatchedDelimiter = arrMatches[ 1 ]; if ( strMatchedDelimiter.length && (strMatchedDelimiter != strDelimiter) ){ arrData.push( [] ); } if (arrMatches[ 2 ]){ var strMatchedValue = arrMatches[ 2 ].replace( new RegExp( "\"\"", "g" ), "\"" ); } else { var strMatchedValue = arrMatches[ 3 ]; } arrData[ arrData.length - 1 ].push( strMatchedValue );
}
return( arrData );
}
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/12/25 00:19