Я пишу код в Google Apps Script. Мне нужно указать уникальный номер для каждого пользователя.Свойства шлюза и скриптов в скрипте Google Apps
Сначала я написал код с классом tryLock и ScriptProperties. Он дал то же количество для нескольких лиц, когда 6 пользователей вызвали функцию почти в одно и то же время. Итак, теперь я использую waitLock и ScriptProperties.
Есть ли разница между tryLock и waitLock с точки зрения способности блокировки? Кроме того, мне интересно время обновления ScriptProperties. Он обновляется немедленно для всех пользователей?
Если вы дадите советы по этому вопросу, я действительно ценю это.
// Мой код с tryLock: это дало то же число для 3 пользователей в тесте 6 пользователями.
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;
Я тестировал второй код с waitLock несколько раз. Это несколько раз давало некоторую ценность. Кроме того, я заменил функцию getProperty() функцией getLastRow() Speradsheet с помощью функции flush(). Однако я не мог создавать уникальные значения для каждого. Pls, дайте свой совет. – user1431847