簡體   English   中英

如何使用Google表格同時管理“提交”事件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM