Laravel 队列为不同的后台队列服务提供统一的 API,可使用多种驱动,eg:mysql,redis,Beanstalkd等,驱动已经封装,不需要管理这些驱动,只需要修改配置就可以更改驱动,在驱动之上的所
Laravel 队列为不同的后台队列服务提供统一的 API,可使用多种驱动,eg:mysql,redis,Beanstalkd等,驱动已经封装,不需要管理这些驱动,只需要修改配置就可以更改驱动,在驱动之上的所有逻辑,包括分发任务和队列的执行操作都是统一的,这就是laravel的优势。
修改驱动为database
位置:.env
QUEUE_DRIVER=database创建database的queue表
php artisan queue:tablephp artisan migrate
创建任务SendMessage
php artisan make:job SendMessage创建发送逻辑dispatch
位置:app/Jobs/SendMessage.php
private $notice;/**
* Create a new job instance.
*
* @return void
*/
public function __construct(\App\Notice $notice)
{
$this->notice = $notice;
}
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
$users = \App\User::all();
foreach ($users as $user){
$user->addNotice($this->notice);
}
}
启动队列
php artisan queue:work或
nohup php artisan queue:work >> /tmp/test &