Я работаю над интеграцией Microsoft Graph с веб-приложением Rails.Мы пытаемся отправить несколько сообщений электронной почты через Graph, но время от времени мы получаем 503 Service Unavailable
со следующими заголовками и телом:
Заголовки ответа:
{
"content-type": [
"text/html; charset=us-ascii"
],
"server": [
"Microsoft-HTTPAPI/2.0"
],
"date": [
"Wed, 30 May 2018 22:05:31 GMT"
],
"connection": [
"close"
],
"content-length": [
326
]
}
Тело ответа:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
<HTML>
<HEAD>
<TITLE>Service Unavailable</TITLE>
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii">
</HEAD>
<BODY>
<h2>Service Unavailable</h2>
<hr>
<p>HTTP Error 503. The service is unavailable.</p>
</BODY>
</HTML>
Мы используем вызов POST https://graph.microsoft.com/v1.0/me/sendMail
для отправки сотен писем Outlook.После отправки примерно 100-200 писем с помощью Graph API мы получаем ошибку 503 Service Unavailable
. Это проблематично, когда нам приходится отправлять 1000+ настроенных писем , поскольку мне неясно, как мы могли бы правильно обработать ошибку, не зная, как долго ждать перед повторной попыткой и другим запросом Graph API .
Мне интересно, сталкивался ли кто-нибудь с подобной проблемой раньше.Я читал о чем-то похожем по принципу регулирования клиента ( Microsoft Graph API - Throttling ), но в этом посте они получают 409
(с заголовком retry-after
), а не 503
.
Основываясь на документации Graph , мы должны получить объект JSON, который может содержать заголовок Retry-After
.Однако, как показано выше, мы не получаем ни заголовок Retry-After
, ни объект JSON для ошибки 503
.