

Google Apps Script で doPost の処理に時間がかかっていると，doPost
が再び（2分後に）呼ばれていたので，LockService の getUserLock や getScriptLock
で再入防止を試みましたが，ロックを取得できてしまいます．他のタブやウィンドウから競合するようにPOSTすると，そちらではロックを取得できません．どこに問題があるでしょうか？

[code]

    function doPost() {
    
      //var lock = LockService.getUserLock(); 
      var lock = LockService.getScriptLock(); 
      var success = lock.tryLock(3);
      if (!success) { // 3秒以内にロックが取れなければ，前の処理が終わっていないと判断．
        console.error('doPost was called while processing doPost.');
        outHtml = HtmlService.createTemplateFromFile ("Wait a minute.");
        return outHtml.evaluate();
      }
    
      try {
        Utilities.sleep(180000);
      }
      finally {
        lock.releaseLock();  
      }
    
[/code]


CC BY-SA 4.0
2021-05-11T10:08:14.490
75782
2021-05-31T14:57:41.913
45238
question
google-apps-script
Google Apps Script で doPost の処理に時間がかかって doPost が再び呼ばれてしまうことに関して


結局，userProperties
からユーザのプロパティとして実行状態（処理中，受付中）を記録して，処理中に呼ばれても新たに処理を始めないようにしました．開始時間も記録して，一定時間経過していれば実行を受け付けるようにしました．


CC BY-SA 4.0
2021-05-31T14:57:41.913
76233
2021-05-31T14:57:41.913
45238
75782
answer