您的位置:首页 > 编程语言 > PHP开发

Laravel 数据库队列使用,以博客用户通知功能为例

2017-07-26 17:01 253 查看
.env文件中修改为QUEUE_DRIVER=database

php artisan queue:table 创建 数据库表,执行成功后,会生成一个新的migration for the queue jobs database table,

php artisan migrate 执行成功后,jobs这个表会在mysql数据中出现,至于里边的字段不用关心

4.php artisan make:job SendMessage 会生成app\job\SendMessage.php

SendMessage.php 类会有两个方法:__construct() 初始化job实例,handle()执行具体的job

修改__construct(Notices $notice) Notices就是你创建的Notices模型

在SendMessage类中定义

private notices = null;
public function __construct(Noticesnotice)

{

this−>notices=notice;

}

修改handle方法

public function handle()

{

//通知每个用户

users=UserModel::all();foreach(users as user){user->addNotice($this->notices);//addNotice方法是定义在UserModel中,使用模型关联

}

}

在NoticesController中

public function store() {

newNotice=Notices::create(request([‘title′,′content′]));if(!empty(newNotice)){

this−>dispatch(newSendMessage(newNotice));

return redirect(‘admin/notices’);

}else{

return ‘创建失败’;

}

}

store方法接受传过来的“通知的数据”,然后插入到数据库中,然后使用

this−>dispatch(newSendMessage(newNotice));将通知发送出去

5.php artisan queue:work

6.测试通知功能ok不ok就行了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  php mysql
相关文章推荐