Вопрос очереди Laravel - PullRequest
0 голосов
/ 01 мая 2019

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

Я пытался исследовать это, но ни у кого нет предложений для этого.

.Env

Queue_Driver=database

Queue.php

'database' => [
            'driver' => 'database',
            'table' => 'jobs',
            'queue' => 'default',
            'retry_after' => 0,
        ],

Контроллер

<?php

namespace App\Jobs;

date_default_timezone_set('utc');
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Mail;
use Log;

class SendEmail implements ShouldQueue
{
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
    protected $emailArray;    
    public function __construct($emailArray)
    {
        $this->emailArray = $emailArray;
    }
    public function handle()
    {
        try {
            $emailArray = $this->emailArray;
            switch ($emailArray['template_name']) {
                case 'email1':
                $email = $emailArray['email'];
                Mail::send('emails.' . $emailArray['template_name'], $emailArray, function ($message) use ($email) {
                    $message->from(env('FromMail', 'myemail@gmail.com'), 'My Email');
                    $message->to($email)->subject('My Email| Forgot Password');
                });
                break;

            }
            return;
        } catch (\Exception $e){Log::info($e->getMessage());}
    }
}

Задание толчка

try {


 $userMailArray = [
                'template_name' => 'email1',
                'email' => $email,
                'temp_password' => $temporaryPwd,
            ];
            dispatch(new SendEmail($userMailArray));
        } catch (\Exception $e) {
            Session::flash('invalidMail', 'Something went wrong. Please try again.');
            return back();
       }

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