这是我的代码
var threads = GmailApp.search('label:X');
var messages = GmailApp.getMessagesForThreads(threads);
for (var i = 0; i < messages.length; i++) {
var message = messages[i][0].getPlainBody();
if (message == null) {
message = messages[i][0].getBody();
}
//Utilities.sleep(1000);
}
如果没有Utilities.sleep方法,我会多次调用服务错误。
Service invoked too many times in a short time: gmail rateMax. Try Utilities.sleep(1000) between calls.
使用Utilities.sleep方法,我得到了超出最大时间错误。
Exceeded maximum execution time
标签有大约400个线程。在每个线程中读取第一条消息正文的优化方法是什么?
答案 0 :(得分:1)
虽然您可以修改使用较小的睡眠值,但脚本没问题,只需要花费很多时间来处理这么多消息。相反,您需要在脚本属性中记住您正在处理的索引,并且每次只处理50个。然后一个时间触发器可以处理多次调用,直到完成。请参阅其他类似https://stackoverflow.com/a/30125776/2213940
的答案