PHP 队列的实现(一)- database实现队列

上一篇:Homestead 下创建laravel新项目

前言

根据文档,我本地创建了一个laravel版本为7+ 的项目,接下来,就来创建简单的队列,并实现队列的执行

第一步: 连接数据库

使用Homestead开发项目,既然它什么都有,那我们就直接使用它的数据库,使用Mysql连接成功后,为此次学习创建一个数据库,名字为 myself ,配置项目中数据库连接信息
默认

第二步: 创建Job任务

根据文档,因为我的项目是空的,所以我需要按照命令,创建对应的表,控制器,Job;

  • 创建对应的表

php artisan queue:table
php artisan migrate

会发现表中多了几个表: Users,mogrations,jobs,failed_jobs

  • 创建对应的控制器

php artisan make:controller UsersController

  • 创建对应的Job

php artisan make:job SendEmail

  • 产生队列
$users = \App\User::where('id','>',24)->get();

foreach ($users as $user){
    $this->dispatch(new SendEmail($user));
    info($user->email);
}

执行代码,你会发现Jobs中,多出了一些待执行的Job任务

  • 执行队列

    php artisan queue:work

    该命令会执行队列,执行Jobs表中所有的任务,要是执行失败,会自动入库failed_jobs表的,智能呀。。。。

写在最后
  • 这个只是简单的database作为驱动执行队列,其实常用的还是Rdis作为驱动;
  • 要是Job中有逻辑调整,记得重启队列,命令为 **php artisan queue:restart **

php artisan : 查看常用的artisan命令

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值