発生している問題・エラーメッセージ
Google Apps Scriptにて、
スプレッドシートに関連付けているスクリプトが
同じスクリプトに対する LockService の操作が多すぎます
といったエラーがでます。
トリガーは毎分実行されるようになっており、
重複してスプリクトが実行されないように、ロックサービスを利用しています。
基本処理時間のかからない、処理しかしていないため原因がわかりません(数秒で終了する処理)。
ご教授くださいませ。
よろしくお願いたします。
該当のソースコード
// 多重起動防止用 ロックスプリクト // タイマー起動・手動起動の際はこの関数を呼び出すこと function start () { var lock = LockService.getScriptLock(); if (lock.tryLock(1)) //ロックできたら処理 できなければすでに実行中 { mail_check(); //メールチェックルーチン lock.releaseLock();//処理終了後ロックを解除 } }
試したこと
負荷を大きくしたとき(処理時間1分以上の状態で実行したとき)同様のエラーは発生しません。
補足情報(FW/ツールのバージョンなど)
Google Apps Script + Google Spreadsheet
追記情報1
上記エラーは毎回ではなく、一日に1~2回と非常に少ない頻度で発生しています。
発生時間は日本時間で日付変更時刻あたりとなっています。
過去発生時間例(直近8件):
0:13
0:18
0:47
1:10
2:39
2:53
3:58
4:35
エラーはメールなどで通知されたのでしょうか?再現しないのですが、mail_checkの中でlockしているとか、他のトリガーでもlockをしているとかってことはないですか?
こんにちは、再現の試行ありがとうございます。トリガーは毎分のみ、mail_checkの中でもlockをしていません。また発生頻度が一日に1~2回といった感じで、日本時間で日付変更時刻前後に発生しているようです。追記します。
すみません、上記で再現しないと申し上げたのですが、設置してから数日たち、今日の朝、ご指摘のように真夜中から夜明けにかけて、エラーが4件発生しました。gasの上限(quota)を見てたのですが、Lock Serviceについての記載がなくうまく調査できていません。情報共有ということで。
あなたの回答
tips
プレビュー