我将.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
驱动程序。
有什么我想念的吗?
我的PHP版本是 5.6 。
答案 0 :(得分:0)
这是一个PHP版本问题。我将PHP升级到7.1版,并解决了问题。