Я разрабатываю приложение для голосования с GAE, которое включает отправку электронного письма каждому избирателю. В моих первоначальных тестах я проверял поминутную квоту электронной почты, и это исключение было поднято:
OverQuotaError: The API call mail.Send() required more quota than is available.
Мне удалось решить этот короткий срок, включив выставление счетов, что значительно увеличивает поминутную квоту электронной почты, но как правильно предотвратить возникновение такого исключения в будущем? Если мое приложение станет чрезвычайно успешным, и я превышаю большую квоту, было бы большой проблемой вызвать это исключение.
Я не хочу отправлять вызов для отправки электронных писем в попытке, кроме блока, поскольку это делается после обработки формы, и я не хочу, чтобы пользователь ждал ответа на запрос POST.
Это хороший вариант использования для очереди задач? Если да, могу ли я поместить запрос на отправку пакета электронной почты в очередь задач или каждый запрос на отправку электронной почты будет помещен в очередь задач? Первый кажется лучше в том, что обработка POST будет быстрее. Независимо от того, каким образом я это сделаю, я бы добавил задержку между отправкой каждого письма, чтобы убедиться, что они не отправляются быстро, и я перехожу квоту?