Laravel mail SES 504 Время ожидания шлюза - PullRequest
0 голосов
/ 07 ноября 2018

При отправке почты в моем проекте Laravel с использованием ses в качестве почтового провайдера я получаю тайм-аут шлюза 504 после некоторого ожидания. Я пытался отправить почту, используя:

Mail::to($session->email)->send(new SessionRegistered($session));

и

Mail::send('emails.sessions', ['firstname' => $request->get('register_first_name'), 'lastname' => $request->get('register_last_name'), 'selected' => $selected], function ($m) use ($request) {
    $m->from(env('MAIL_FROM'), env('MAIL_FROM_NAME'));

    $m->to($request->get('register_email'), $request->get('register_first_name') . ' ' . $request->get('register_last_name'))->subject('Uw persoonlijke programma');
});

Когда я использую log в качестве почтового провайдера, все работает. Это происходит в моей среде Homestead и на наших серверах. Учетные данные SES также используются в другом проекте, где они работают.

Я получаю следующую ошибку:

*502 upstream timed out (110: Connection timed out) while reading response header from upstream

Ответы [ 2 ]

0 голосов
/ 07 ноября 2018

Исправлено, я идиот. Я использовал ЕС-Central-1. eu-central-1 не имеет SES, eu-west-1 имеет.

0 голосов
/ 07 ноября 2018

У вас есть балансировщик нагрузки? Пробовал это?

Решение 1. Мониторинг HTTPCode_ELB_5XX и метрик задержки. Если эти показатели увеличиваются, это может быть связано с тем, что приложение не отвечает в течение периода простоя. Для получения подробной информации о запросах, для которых истекло время ожидания, включите журналы доступа на балансировщике нагрузки и просмотрите коды ответов 504 в журналах, которые создаются Elastic Load Balancing. При необходимости вы можете увеличить свою емкость или увеличить настроенный тайм-аут простоя, чтобы можно было выполнять длительные операции (такие как загрузка большого файла). https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/ts-elb-error-message.html

Единственное, что вы можете сделать, чтобы сделать его эффективным и отказоустойчивым, - это использовать очереди. Вы можете поместить задачу (например, отправить электронное письмо) в очередь. Предположим, что если задача не выполнена, сама очередь попытается снова, и ее также можно настроить (например, нет попыток)

Другой SO Ответ

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...