php - 为什么带有数据库驱动程序的 Laravel 5.8 调度像同步一样工作?
问题描述
我将队列驱动程序更改.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。
解决方案
这是一个PHP版本问题。我将 PHP 升级到 7.1 版并解决了问题。
推荐阅读
- python - __init__.py 中的相对回购路径?
- mysql - MySQL 表连接索引仅在某些条件下工作
- php - 注册第二个组件?Vue.js Laravel6
- arrays - 如何在 Javascript/GAS 中映射和发送电子邮件给不符合特定条件的特定用户
- chai - 如何在赛普拉斯测试中排队
- react-native - 开玩笑在我的本地工作,但不在 CircleCI
- influxdb - 如何使用 FluentD 作为 Telegraf 和 InfluxDB 之间的缓冲区
- java - 如何使用 JavaSpark 有效地处理百万条记录
- azure - 设置 StartFromBeginning = true 时 Azure 函数不会自动启动 cosmos 触发器
- javascript - 如何打开和关闭 Vuetify Carousel 组件的右/左箭头