Почему диспетчер Laravel 5.8 с драйвером базы данных работает как синхронизация? - PullRequest
0 голосов
/ 25 апреля 2019

Я изменил драйвер очереди в .env и config/queue.php с sync на database.Затем я запустил php artisan cache:clear.

Я создал новое задание с помощью команды php artisan make:job SendEmailJob

<?php

namespace App\Jobs;

use Illuminate\Bus\Queueable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;

use App\Mail\SendEmailMailable;
use Illuminate\Support\Facades\Mail;

class SendEmailJob implements ShouldQueue
{
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

    /**
     * Create a new job instance.
     *
     * @return void
     */
    public function __construct()
    {
        //
    }

    /**
     * Execute the job.
     *
     * @return void
     */
    public function handle()
    {
        Mail::to('hello@example.com')->send(new SendEmailMailable());
    }
}

Затем я написал этот маршрут в routes\web.php

use App\Jobs\SendEmailJob;
use Carbon\Carbon;
use Illuminate\Bus\Dispatcher;

Route::get('sendEmail', function(){
    $job = (new SendEmailJob())->delay(Carbon::now()->addSeconds(5));
    dispatch($job);
    return 'Email is sent properly';
});

Я остановил php artisan serve, снова запустил.

Я проверил результат env('QUEUE_DRIVER', 'database');, он возвращает database.

Я запустил php artisan queue:work, но выходных данных нет.Письмо, отправленное на SMTP-сервер, например sync driver.

Есть что-то, что я пропустил?

Моя версия PHP 5.6 .

1 Ответ

0 голосов
/ 25 апреля 2019

Это была проблема с версией PHP. Я обновил PHP до версии 7.1 и проблема решена.

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