Google apps script I是否有一种经过验证的方法可以通过自动触发器检查/安装以及多个电子表格之间的多个用户来处理更新间隔?
Google apps script I是否有一种经过验证的方法可以通过自动触发器检查/安装以及多个电子表格之间的多个用户来处理更新间隔?,google-apps-script,google-sheets,triggers,Google Apps Script,Google Sheets,Triggers,我正在开发一个插件,它需要按照用户指定的时间间隔(从每小时一次到每年一次)更新电子表格-是否有一种智能的、经验证的方法来处理自动触发器检查/安装和多个电子表格之间的多个用户
据我所知,触发器是每个用户单独安装的——有人能揭示出在以下情况下插件的时间驱动触发器是如何工作的吗
检查触发器是否已安装不会“查看”其他用户是否已安装,也不会对其进行操作(例如,在不再需要时删除其他人的触发器)。有什么办法可以应付吗?50个用户每小时安装一次触发器并不理想
安装了插件的多个电子表格:触发器是否会在所有电子表
我正在开发一个插件,它需要按照用户指定的时间间隔(从每小时一次到每年一次)更新电子表格-是否有一种智能的、经验证的方法来处理自动触发器检查/安装和多个电子表格之间的多个用户
据我所知,触发器是每个用户单独安装的——有人能揭示出在以下情况下插件的时间驱动触发器是如何工作的吗
检查触发器是否已安装不会“查看”其他用户是否已安装,也不会对其进行操作(例如,在不再需要时删除其他人的触发器)。有什么办法可以应付吗?50个用户每小时安装一次触发器并不理想
安装了插件的多个电子表格:触发器是否会在所有电子表格中同时运行被调用的函数,还是每个电子表格都需要单独的触发器?干测试似乎表明,触发器需要在每张纸上单独设置,不过如果有人能够通过已经在线的附加组件确认他们的体验,那就太好了
为了控制潜在的混乱,我正在考虑向计划的更新实例添加“last updated”属性,并让触发函数比较该时间与当前时间之间的时间差,但是,它仍然返回到每小时运行一次函数,乘以用户数量。触发器是否会同时在所有用户中运行调用的函数,还是每个工作表都需要单独的触发器
按照[用户]的[表格|文档|表格]安装(准确地说,是每个脚本项目)。由于它们对于每个用户都是隔离的,因此它们也会针对每个用户被触发(而不是简单的触发器)
可安装onOpen | OneEdit | onChange
不过,在某些情况下,这可能不像《官方指南》中的“可安装触发器”一节那么简单。尽管一般情况仍然成立-即使其他帐户将触发它,触发器将针对创建者的帐户运行,其中包括配额和所有与用户相关的内容,因此要格外小心
有什么办法可以应付吗
虽然[installable]触发器不是跨用户共享的,但有些资源是在用户之间共享的,因此您至少有两种可能的方法来处理并发触发器触发:
首选方式:。它是专门为避免竞争条件而设计的,例如您的情况:只需等待(或重新安排,如果操作可能需要5分钟以上),直到可以取消锁定(请注意,您需要使用脚本或文档锁定)
回退方式:如果您打算让用户同时与UI交互,锁将失败(根据设计)。您使用PropertiesService
的想法是正确的(我假设这就是您所说的“添加属性”),但请注意,读/写操作会受到影响。
我最近回答了一个类似的问题-它的LockService
行为与PropertiesService
(但再次注意配额)
注释
您必须了解触发器并对此做出解释(参考答案中包含了一个更简单的用于检查时间戳的解决方案)。触发器是否会同时在所有触发器中运行调用的函数,或者每个工作表需要单独的触发器
按照[用户]的[表格|文档|表格]安装(准确地说,是每个脚本项目)。由于它们对于每个用户都是隔离的,因此它们也会针对每个用户被触发(而不是简单的触发器)
可安装onOpen | OneEdit | onChange
不过,在某些情况下,这可能不像《官方指南》中的“可安装触发器”一节那么简单。尽管一般情况仍然成立-即使其他帐户将触发它,触发器将针对创建者的帐户运行,其中包括配额和所有与用户相关的内容,因此要格外小心
有什么办法可以应付吗
虽然[installable]触发器不是跨用户共享的,但有些资源是在用户之间共享的,因此您至少有两种可能的方法来处理并发触发器触发:
首选方式:。它是专门为避免竞争条件而设计的,例如您的情况:只需等待(或重新安排,如果操作可能需要5分钟以上),直到可以取消锁定(请注意,您需要使用脚本或文档锁定)
回退方式:如果您打算让用户同时与UI交互,锁将失败(根据设计)。您使用PropertiesService
的想法是正确的(我假设这就是您所说的“添加属性”),但请注意,读/写操作会受到影响。
我最近回答了一个类似的问题-它的LockService
行为与PropertiesService
(但再次注意配额)
注释
您必须了解触发器并对此做出解释(参考答案还包括一个更简单的用于检查时间戳的解决方案)。欢迎使用。这个问题主要是基于观点的,需要更多的关注,它缺少中建议的对您的搜索/研究工作的简要描述。请将问题缩小范围,使其具体化和可回答性。欢迎访问。这个问题主要是基于观点的,需要更多的关注,它缺少中建议的对您的搜索/研究工作的简要描述。请缩小问题的范围,使其具体和可回答。