2

Google Apps ScriptをWebAppとして公開しましたが、スクリプトを使用しているユーザーが次のことに遭遇することがあります。

Service invoked too many times in a short time: gmail rateMax. Try Utilities.sleep(1000) between calls. (line XXX)

例外は、で速度を落とすように指示しますがUtitlities.sleep(1000)、その前に、最大レートが正確に何であるかを知りたいと思います。これについて私が見つけることができる唯一のドキュメントはクォータページですが、これは次のように述べています: GMail Read: 10000 / day そして私のスクリプトは10000回の読み取りから遠く離れています。rateMax正確に何を指しているのか誰か知っていますか?

更新:これを引き起こすコードは次のとおりです(XHR経由で呼び出されます):

add = function(form) {
// [...]

messageId = (_ref = form.msgId) != null ? _ref : form.messageId;
if (!messageId || !(message = GmailApp.getMessageById(messageId))) {
  throw ErrorCodes.INVALID_MESSAGE_ID;
}

// [...]

thread = GmailApp.getThreadById(message.getThread().getId());
if (String(form.archive) === "true") {
  thread.moveToArchive();
}

// [...]

addLabel(LABEL_BASE, thread);
addLabel(LABEL_OUTBOX, thread);
};

getLabel = function(name, create) {
var _ref;
return (_ref = GmailApp.getUserLabelByName(name)) != null ? _ref : (create ? GmailApp.createLabel(name) : void 0);
};

addLabel = function(name, thread) {
var _ref;
if ((_ref = this.getLabel(name, true)) != null) {
  _ref.addToThread(thread);
}
};

// [...]GMailAPIの呼び出しを行わないサンプルから削除されたコードを示します。

4

1 に答える 1