Laravel 队列的使用 (存储在database中)

22 篇文章 0 订阅

一    修改.env文件  

默认是 sync 意思是同步的意思  更多是在测试环境使用 能立即看到效果  除此之外还有 database, redis, beanstalkd, sqs

我们使用多是sync,database,redis 

查资料显示:beanstalkd 是一个专业队列驱动器 sqs是国外第三方队列服务

这里我们演示的是database这种  所有这里填写database

 

二   生成任务类

使用artisan命令  php artisan make:job 自己定义的名字(我写的demo)

php artisan make:job demo

然后会在app/Jobs文件夹下形成  任务类文件

在app/job.demp.php的handle文件中写入实际操作

    /**
     * Execute the job.
     *
     * @return void
     */       队列实际的操作
    public function handle($id)
    {
       Db::table('user')->where(['id'=>$id])->update(['age'=>1]);
    }

 

三  生成队列所需的表

php artisan queue:table 

执行上面的命令会生成两个表

一个是 job 表  一个是 fail_job 表   job表记录的是队列的数据  fail_job记录的是队列执行错误时的一些报错数据 

四 .队列数据的加入  

在要操作的地方加入这行操作 调用你的类文件  当你访问这个方法时 数据库job表里会添加一行数据进去,你访问一次这个方法就加入一次 

  //加入队列 接口处调用 加入队列后续自己处理 delay延迟处理时间
\App\Jobs\demo::dispatch($this->model->find($user->id));

这一行就是你访问一次之后加入的数据

 

五.  运行队列

php artisan queue:work 

执行了之后就会启用你的队列  黄色的是代表正在执行 绿色表示执行成功了  每执行成功一条数据 就会产生这样两句话

以上是laravel关于使用database做队列存储的全部内容 

注意 : 队列中的代码有时候执行错误会直降讲队列关闭掉,所有我们实际情况使用中记得开启守护进程守护队列  代码里也要劲量将容易导致队列因错误而关闭的地方做好判断 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值