Php 为什么带有数据库驱动程序的Laravel5.8调度像同步一样工作?

Php 为什么带有数据库驱动程序的Laravel5.8调度像同步一样工作?,php,laravel,php-5.6,laravel-5.8,laravel-queue,Php,Laravel,Php 5.6,Laravel 5.8,Laravel Queue,我将.env和config/queue.php中的队列驱动程序从sync更改为database。然后我运行了php artisan缓存:clear 我使用命令php-artisan-make:job-sendmailjob <?php namespace App\Jobs; use Illuminate\Bus\Queueable; use Illuminate\Queue\SerializesModels; use Illuminate\Queue\InteractsWithQueu

我将
.env
config/queue.php
中的队列驱动程序从
sync
更改为
database
。然后我运行了php artisan缓存:clear

我使用命令
php-artisan-make:job-sendmailjob

<?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());
    }
}
我停止了
php artisan serve
,服务器再次启动

我检查了
env('QUEUE\u DRIVER','database')的结果
,它返回
数据库

我运行了php artisan queue:work,但没有输出。 发送到SMTP服务器的电子邮件,如
sync
驱动程序

有什么我错过的吗


我的PHP版本是5.6

这是一个PHP版本问题。我将PHP升级到7.1版并解决了问题。

Laravel5.8PHP7.1.3。如果您在访问
sendmail
路径时收到“无输出”,我希望您在
dispatch
中的某个地方收到致命错误。建议您检查日志。@我检查了文件
storage/logs/laravel.log
。没有新日志。您是否尝试过使用Artisan::queue而不是dispatcherrors,队列上的错误不会显示在
存储/logs/laravel.log
上,因为
php Artisan queue:work
创建了项目的镜像实例。试着建立一个新的系统。另一个值得一看的资源是感谢您添加了一个关于您如何修复它的描述-人们通常不会这样做!
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';
});