Я пытаюсь добавить данные в свою базу данных Google Cloud SQL с помощью Google App Script. Вчера вечером, когда я закончил, мой код работал нормально, но когда я запустил его сегодня утром, он теперь выдает ошибку «Оператор отменен из-за тайм-аута или запроса клиента», ошибка, которую я получаю в облачной консоли: «Получена ошибка чтения. пакеты связи ».
Прошлой ночью было обработано около 1600 строк данных. Я поигрался с этим и сузил его, что ошибка возникнет, когда будет больше 15 строк. 15 строк он добавит данные в порядке, изменит его на 16 строк и выдает ошибку, это говорит мне, что это не само соединение. Я также протестировал данные в электронной таблице, скопировав строку 15 в строку 16 и удалив все остальные данные, это не сработало. Мое главное замешательство в том, что я прочитал о том, что время истекает, заключается в том, что вчера вечером он работал нормально с 1600 строками данных. Мой код ниже:
function connection(folderId, db, c1, c2, c3, c4, c5, c6, c7) {
var files = DriveApp.getFolderById(folderId).getFiles();
var excelfile = files.next();
var fileId = excelfile.getId();
var data = SpreadsheetApp.openById(fileId).getSheetByName('Report 1');
var last = data.getLastRow()
var sheetdata=data.getRange("B5:H16").getValues();
var conn = Jdbc.getCloudSqlConnection(dbUrl, user, userPwd);//dburl is not defined
conn.setAutoCommit(false);
var start = new Date();
var stmt = conn.prepareStatement('INSERT INTO '+ db + ' ' + '('+c1+','+c2+','+c3+','+c4+','+c5+','+c6+','+c7+') values (?, ?, ?, ?, ?, ?, ?)');
for (var i=0; i<sheetdata.length; i++) {
stmt.setString(1, Utilities.formatDate(sheetdata[i][0], 'Etc/GMT', 'yyyy-MM-dd'));
stmt.setString(2, sheetdata[i][1]);
stmt.setString(3, sheetdata[i][2]);
stmt.setString(4, sheetdata[i][3]);
stmt.setString(5, sheetdata[i][4]);
stmt.setString(6, sheetdata[i][5]);
stmt.setString(7, sheetdata[i][6]);
stmt.addBatch();
}
var batch = stmt.executeBatch();
conn.commit();
conn.close();
var end = new Date()
Logger.log('Time elapsed: %sms for %s rows.', end - start, batch.length);
}