1

我有一个 Google Apps 脚本项目(在 Google 站点中)。该项目有一个文件。该文件包含函数A 和函数B。functionA 对一组文件进行操作,而 functionB 对一组完全不同的文件进行操作。为了防止并发修改,每个函数都使用 Lock 服务来获取它自己的公共锁。每个函数每 1 分钟触发一次。

我发现 FunctionA 似乎无法获得锁,而 FunctionB 有锁。

我的问题是,这是预期的吗?如果是这样 a) 什么是文档参考和 b) 我如何设计我的系统以便 functionA 和 functionB 实际上可以同时运行?我是否需要将功能向上移动到单独的文件甚至不同的项目中?

我锁定 functionA 的目标是停止 functionA 的多个并发运行。与函数 B 类似。我不在乎functionA是否与functionB同时运行。事实上,我希望它们同时运行,以便从用户的角度认为事情运行得很快。

我已经阅读了 LockService 文档,但它非常有限——它只是说锁的范围是“一段代码”或“一段代码”。

4

1 回答 1

2

它是“每个项目”。不幸的是,您不能为同一个脚本拥有两个锁(除非它是不同的用户并且您获得了私人锁,这不是您的情况)

a) 我不是 API 设计师(我是杰出贡献者),但我很确定这是设计使然。由于资源限制,他们可能以这种方式限制它。

b)因此,您必须创建一个不同的脚本/项目才能拥有不同的锁。

于 2012-05-03T03:21:55.743 回答