【发布时间】:2020-05-05 14:38:56
【问题描述】:
我们有一个非常简单的 Google 脚本,可以删除 GSuite 电子邮件帐户超过 90 天的所有电子邮件。由于gmailApp.Search 上未记录的 500 个结果限制并且需要删除数千封电子邮件(大约每天 7500 封),它设置为每小时运行一次:
function deleteOldEmail() {
var threads = GmailApp.search('in:inbox older_than:90d');
Logger.log('Found: ' + threads.length + ' Emails');
var batchSize = 100
for (j = 0; j < threads.length; j+=batchSize) {
GmailApp.moveThreadsToTrash(threads.slice(j, j+batchSize));
}
Logger.log('Deleted: ' + j + ' Emails');
}
在“我的执行”下显示此消息不断失败:
例外:一天内调用的服务次数过多:gmail。在 deleteOldEmail(代码:4:26)
通过选择 Resources->Cloud Platform Project 进入 Google Cloud Platform (GCP) 仪表板并单击项目名称会在错误报告卡上显示错误,并且 API 卡上有 API 请求。单击“转到 API 概述”时,结果页面根本不显示任何信息:
我需要确定达到哪个配额以及如何达到。从上面的页面单击 Apps Script API 显示没有流量,也没有配额下的数据。从上面的页面点击 Gmail API 显示没有流量,也没有配额下的数据。在 IAM & Admin->Quotas 下,列出的所有 API 的使用率为 0。
如何确定要达到的配额?
编辑:我打开了触发器失败的电子邮件通知。它说这是第 12 行,即 GmailApp.moveThreadsToTrash() 方法。正如其他一些帖子所质疑的那样(没有答案),它不是问题所在的搜索。
该脚本现在从今天中午开始再次运行,所以我将能够计算它运行的次数乘以 500 并大致了解一下。当它发生时,我会发布更新,因为我发现很多关于此的帖子都没有解决方案。
编辑 2: 不幸的是,我还没有再次达到极限。该脚本在其高峰期的 24 小时内删除了近 11K 的内容。
【问题讨论】:
标签: google-apps-script google-cloud-platform gmail