function doPost(e) { var lock = LockService.getScriptLock(); try { lock.waitLock(30000); // wait 30 seconds for others' use of the code section and lock to stop and then proceed } catch (e) { Logger.log('Could not obtain lock after 30 seconds.'); return HtmlService.createHtmlOutput(" Server Busy please try after some time

") // In case this a server side code called asynchronously you return a error code and display the appropriate message on the client side } var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('DATA'); var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0]; var nextRow = sheet.getLastRow(); var cell = sheet.getRange('a1'); var col = 0; for (i in headers){ if (headers[i] == "Timestamp"){ val = new Date(); } else { val = e.parameter[headers[i]]; } cell.offset(nextRow, col).setValue(val); col++; } SpreadsheetApp.flush(); // applies all pending spreadsheet changes lock.releaseLock(); return ContentService.createTextOutput(""); // do not return anything to avoid CORS error : No Access-Control-Allow-Origin is present }