[英]How to manage 'submit' event at the same time using Google Forms
我有一個Google Forms作為測試工具,它在事件提交發生時執行腳本。 該腳本從用戶那里獲取最后一個電子郵件地址,並發送帶有消息的電子郵件(測試綜合得分)。
function manager(e) {
var ultimoCorreo = getUltimoCorreo();
validarPuntaje(e.response, ultimoCorreo);
}
function getUltimoCorreo() {
var rango = HOJA_CALCULO.getRange(1,2,HOJA_CALCULO.getLastRow(),1); // Rango donde se encuentran los correos en la hoja de calculo
var ultimoCorreo = rango.getCell(HOJA_CALCULO.getLastRow(),1).getValue();
return ultimoCorreo.toLowerCase(); // Convertimos el correo a minusculas por si el usuario mandó mal el correo
}
這樣工作還可以。 但是當幾個用戶同時發送答案時,我遇到了麻煩。 例如:當4個用戶同時發送表單時,具有每個分數的電子郵件將發送到最后一封電子郵件。
如何在Google表單中同時管理“提交”事件?
更新:我曾經見過LockService,但是我還不了解它是如何工作的。
嘗試使用鎖定服務,看看會發生什么:
function manager(e) {
var hasLock,lockService,ultimoCorreo;
lockService = LockService.getScriptLock();
hasLock = lockService.tryLock(10000);
if (!hasLock) {
MailApp.sendEmail(recipient, 'Failed to process your Form submission', 'The code failed');
Logger.log('Could not obtain lock after 10 seconds.');
return;
}
ultimoCorreo = getUltimoCorreo();
validarPuntaje(e.response, ultimoCorreo);
lockService.releaseLock();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.