Google Apps Script でコードを書いています。各ユーザーに一意の番号を付与する必要があります。
最初に、tryLock と ScriptProperties クラスを使っていくつかのコードを書きました。6人のユーザーがほぼ同時に関数を呼び出すと、複数の人に同じ番号が与えられました. そのため、今は waitLock と ScriptProperties を使用しています。
ロック機能に関して、tryLock と waitLock に違いはありますか? また、ScriptProperties の更新タイミングも気になります。すべてのユーザーに対してすぐに更新されますか?
この問題についてアドバイスをいただければ、本当にありがたいです。
//tryLock を使用した私のコード: これにより、6 人のユーザーによるテストで 3 人のユーザーに同じ数が与えられました。
var glock = LockService.getPublicLock();
if( glock.tryLock(10000) )
{
var val = ScriptProperties.getProperty(proName) * 1 + 1;
ScriptProperties.setProperty(proName, val);
glock.releaseLock();
return val;
} else { return null; }
//waitLock を使用した別のコード: これは、8 人のユーザーによるテストでそれぞれに固有の番号を与えました。
var val = null;
try{
var glock = LockService.getPublicLock();
glock.waitLock(10000);
val = ScriptProperties.getProperty(proName) * 1 + 1;
ScriptProperties.setProperty(proName, val);
glock.releaseLock();
} catch (e) { }
return val;