массовая рассылка с GAE и поминутной квотой - PullRequest
2 голосов
/ 09 марта 2011

Я разрабатываю приложение для голосования с GAE, которое включает отправку электронного письма каждому избирателю. В моих первоначальных тестах я проверял поминутную квоту электронной почты, и это исключение было поднято:

OverQuotaError: The API call mail.Send() required more quota than is available.

Мне удалось решить этот короткий срок, включив выставление счетов, что значительно увеличивает поминутную квоту электронной почты, но как правильно предотвратить возникновение такого исключения в будущем? Если мое приложение станет чрезвычайно успешным, и я превышаю большую квоту, было бы большой проблемой вызвать это исключение.

Я не хочу отправлять вызов для отправки электронных писем в попытке, кроме блока, поскольку это делается после обработки формы, и я не хочу, чтобы пользователь ждал ответа на запрос POST.

Это хороший вариант использования для очереди задач? Если да, могу ли я поместить запрос на отправку пакета электронной почты в очередь задач или каждый запрос на отправку электронной почты будет помещен в очередь задач? Первый кажется лучше в том, что обработка POST будет быстрее. Независимо от того, каким образом я это сделаю, я бы добавил задержку между отправкой каждого письма, чтобы убедиться, что они не отправляются быстро, и я перехожу квоту?

Ответы [ 2 ]

3 голосов
/ 09 марта 2011

да, идеально подходит для очереди задач, так как вы можете ограничить скорость, с которой ваши электронные письма отправляются, изменив свойства в очереди. Yaml

одно письмо на задачу будет лучше, так что еслизадание не выполнено и повторяется, оно будет повторять только неудачный, а не весь пакет

0 голосов
/ 09 марта 2011

да. использовать очередь задач. если задача отправляет электронное письмо, вы можете решить, сколько задач должно выполняться в минуту. и если задание не выполнено, оно выполнится повторно.

...