我有一个脚本可以执行一些基本的复制和粘贴数据,创建一个工作表作为PDF格式并附加到电子邮件。我有一个按钮,可以为嵌入在工作表中的经验较少的同事启动它:< / p>
我们共享电子表格文档,我希望将其保留为版本控制方式。设置脚本的最佳方法是什么,以便如果脚本的实例已经在电子表格文档中运行,它会拒绝第二次尝试,直到完成第一次尝试?某种尝试捕捉?
我认为代码与此问题无关,这里是相关功能的开头:
function failedSettlementsEmailz() {
var contacts;
var toastMembers="";
....more code...
它调用我的脚本文档中绑定到Google表格电子表格的其他两个函数。
由于
答案 0 :(得分:4)
查看LockService。
例如在你的代码中有:
var lock = LockService.getScriptLock();
if (lock.tryLock(1000)) { // Wait for 1s
// Do stuff ...
lock.releaseLock()
} else {
// This script is already running, try again later ...
}
答案 1 :(得分:0)
我了解到,当通过单击按钮运行脚本时,您不希望在脚本运行时更多地运行脚本。如果我的理解是正确的,那么这个变通方法呢?请将此视为几个答案之一。
在此变通方法中,我选择使用CacheService。 &#34; CacheService允许您访问缓存以便短期存储数据。&#34;默认到期时间为10分钟。这超过了GAS的最长执行时间(6分钟)。所以我选择了这个。
function failedSettlementsEmailz(){
var cache = CacheService.getScriptCache();
if (!cache.get("script")) {
cache.put("script", "running"); // you can use various value for the value of "running".
// do something
cache.remove("script");
}
}
如果我误解了你的问题,我很抱歉。