Как обрабатывать электронную почту в очереди в Laravel - PullRequest
0 голосов
/ 26 сентября 2018

У меня есть AWS SQS, и я успешно создал систему уведомлений, которая сохраняет сообщение в очереди AWS SQS.

В коде:

protected function saveNotificationEmail($subject, $msg)
{                          
    Mail::to(       
        $this->getUserRecord()->email
    )->queue(new Alert($subject, $msg));
}

Объект "Alert""был создан через CLI php artisan make:mail Alert.

Теперь, когда я запускаю код, в очереди появляется новый элемент;так что все отлично работает для помещения данных в очередь.Когда я запускаю php artisan queue:work, я получаю серию сообщений, таких как:

[2018-09-25 22:37:43] Processing: App\Mail\Alert
[2018-09-25 22:37:48] Processing: App\Mail\Alert
[2018-09-25 22:37:52] Processing: App\Mail\Alert
[2018-09-25 22:37:57] Processing: App\Mail\Alert

Глядя на AWS SQS, сообщения принимаются (сообщения в полете), а затем снова перемещаются в очередь, как доступныедля обработки .. Я протестировал систему электронной почты без queue метода, и она работает нормально.Чего мне не хватает?

Я полагаю, что проблема очень похожа на этот вопрос, на который не было ответа

1 Ответ

0 голосов
/ 26 сентября 2018

Проблема была связана с представлением, так как я не передал переменную, которую ожидал шаблон.Использование команды CLI php artisan queue:listen -vvv не показало ничего релевантного, я нашел больше информации в хранилище файлов журнала / log / laravel.log

...