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