'Why is this LockService not stopping it from invoking GmailApp service?
I'm trying to get the lock for 5 seconds and I try running it concurrently and it throws the know error:
Exception: Service invoked too many times for one day: email.
This is how I'm trying to get it:
function sendEmail() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheet = ss.getActiveSheet();
if (sheet.getName() != 'Todays Tests V2') {
return;
}
const testSheet = ss.getSheetByName("Todays Tests V2");
const row = sheet.getActiveCell().getRow();
const col = sheet.getActiveCell().getColumn();
const sendResults = testSheet.getRange(row, 15, 1, 1).getValue();
if (ss.getActiveSheet().getSheetName() == testSheet.getSheetName() &&
row > 5 &&
col == 15 &&
sendResults == true) {
const lock = LockService.getScriptLock();
try {
lock.tryLock(5000); // wait 05 seconds for others' use of the code section and lock to stop and then proceed
} catch (e) {
Logger.log('Could not obtain lock after 05 seconds.');
return HtmlService.createHtmlOutput("<b> Server Busy. Please try after some time <p>");
}
const email = testSheet.getRange(row, 5).getValue();
const name = testSheet.getRange(row, 3).getValue() + ' ' + testSheet.getRange(row, 4).getValue();
const testNo = testSheet.getRange(row, 2).getValue();
GmailApp.sendEmail(email, "subject", name + " XXXXXX.", { name: 'Custom Name' });
lock.releaseLock();
}
}
Solution 1:[1]
You can review the limits here: https://developers.google.com/apps-script/guides/services/quotas
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Nathan Gilson |
