我正在解析一个大文本文件,然后调用一个速率受限的 Google API(邮件迁移)(API 文档状态每次调用 1 秒)。
即使我有 Utilities.sleep(1000); 在我的循环中,即使我在循环期间只设置了一次属性,我仍然会收到此错误:
短时间内服务调用次数过多:属性 rateMax。在通话之间尝试 Utilities.sleep(1000)。(第 146 行)
除了不经常设置属性之外,我还能做些什么来缓解这种情况?我应该尝试使用 CacheService 暂时存储我的属性吗?
我正在解析一个大文本文件,然后调用一个速率受限的 Google API(邮件迁移)(API 文档状态每次调用 1 秒)。
即使我有 Utilities.sleep(1000); 在我的循环中,即使我在循环期间只设置了一次属性,我仍然会收到此错误:
短时间内服务调用次数过多:属性 rateMax。在通话之间尝试 Utilities.sleep(1000)。(第 146 行)
除了不经常设置属性之外,我还能做些什么来缓解这种情况?我应该尝试使用 CacheService 暂时存储我的属性吗?
不幸的是,没有公开确切的短期利率限制。您可能想尝试增加睡眠量,以期超过避免错误所需的阈值。最终,我认为您的分析是正确的,您应该考虑减少写入用户属性的频率。我不确定 CacheService 是正确的解决方案,但这取决于您如何使用这些信息。
这实际上取决于您的应用程序的设计。如果您正在解析信息并将其汇总到摘要中,则需要更少的调用。也许作为电子邮件发送不是最佳选择。解析后的数据是否可以转到其他地方,然后将用户引导到那里而不是发送电子邮件?
属性 v CacheService
CacheService 产生相同的错误(除非我的代码中有一个我错过的错误)。如果它有助于 CacheService 让您存储更长的字符串,那么这可以减少写入次数。