2013-09-19 2 views
1

Я использую django (1.5.2) для отправки почты каждый день. Около 100 или около того в течение 2/3 минут.Очень медленная отправка почты с помощью метода Django send_mail

У меня никогда не было проблем до недавнего времени (возможно, так как я обновился до 1.5.2). Теперь для отправки этих писем иногда требуется до 2 часов (!).

Что происходит, так это то, что у меня есть максимум 5 потоков, пытающихся отправить почту с помощью метода send_mail (https://docs.djangoproject.com/en/dev/topics/email/#send-mail). Когда поток выполняется, создается новый, выполняет некоторую работу и затем отправляет почту. Когда пришло время отправлять, все они «останавливаются» (или мертвые блокировки или что-то еще) в течение нескольких минут, иногда часов, пока, наконец, они не отправят свои письма, и все будет хорошо работать (новые потоки быстро отправляют почту).

Я использую postfix и учетную запись gmail как почтовый сервер. При отправке только одной почты (в оболочке django или когда поток отправляет одну почту в другой час) нет проблем (почта отправляется мгновенно). Каждый вызов send_mail выполняется примерно с 4 получателями, поэтому это 100 ~ 4 * 25.

И наконец, при просмотре журнала mail.info каждый журнал имеет отметку времени во время отправки почты, возможно, проблема заключается в django?

Дело в том, что я не знаю, как отлаживать это, где я должен выглядеть, и если проблема возникает из django или gmail. Любое предложение было бы весьма признательным.

Спасибо!

+0

Если вы отправляете из Django в Postfix на localhost, send_mail должен быть почти мгновенным. Существует некоторая информация о настройке Postfix здесь: http://stackful-dev.com/django-email-tricks-part-2.html, может быть, это поможет. –

ответ

1

Возможно ли установлено Celery вместо потоков?

Также вы можете использовать службу электронной почты, такую ​​как SendGrid, и не нужно беспокоиться о загрузке почты. Просто удалите их API с помощью REST или используя SMTP

+1

Я не пробовал sendgrid, но переключился на сельдерей для отправки почты. На самом деле медленность была такой же проблемой базы данных, как и отправкой фактической почты. –

Смежные вопросы