google apps script - Large data set exceeding maximum execution time -
google apps script - Large data set exceeding maximum execution time -
i have script loading contents of spreadsheet scriptdb spreadsheet has around 15,000 rows, 9 columns , keeps giving me "exceeded maximum execution time" error.
i'm using function given in google's documentation load data:
function loaddatabasefromsheet() { var spreadsheet = spreadsheetapp.openbyid(spreadsheet_key); var sheet = spreadsheet.getactivesheet(); var columns = spreadsheet.getlastcolumn(); var info = sheet.getdatarange().getvalues(); var keys = data[0]; var db = scriptdb.getmydb(); (var row = 1; row < data.length; row++) { var rowdata = data[row]; var item = {}; (var column = 0; column < keys.length; column++) { item[keys[column]] = rowdata[column]; } db.save(item); } }
is there way speed things or going have break chunks of few thousand?
calling db.save(item)
15000 times causing slowness. instead, utilize bulk operations if you're going saving much data.
var db = scriptdb.getmydb(); var items = []; (var row = 1; row < data.length; row++) { var rowdata = data[row]; var item = {}; (var column = 0; column < keys.length; column++) { item[keys[column]] = rowdata[column]; } items.push(item); } db.savebatch(items,false);
calling save operation 1 time @ end saves of round-trip times, should speed code lot , finish before exceeds maximum execution time.
google-apps-script
Comments
Post a Comment