yii2-queue队列的使用及解释
程序员文章站
2022-03-14 14:57:56
...
1.队列是一种特殊的线性表,先进先出的数据结构。
2.队列数据元素又称为队列元素。在队列中插入一个队列元素称为入队,在队列中删除一个队列元素成为出队。因为队列只允许在一端插入,在另一端删除,所以只有最早进入队列的元素才能最先从队列中删除,故队列又称为先进先出线性表。
项目中使用:
1.配置文件中:
'queue' => [
'class' => \yii\queue\redis\Queue::class,
'channel' => 'admin.xiaolutg.cn',//项目访问地址
],
- 创建一个要执行操作得类,比如说优惠券自动过期事件
-
class ExpireCouponJob extends BaseObject implements JobInterface { public $couponId; public function execute($queue) { $coupon = Coupon::findOne($this->couponId); //判断优惠券过期类型 switch ($coupon->date_type) { case '2'://优惠券固定时长 $expireDate = $coupon->fixed_end_at; break; case '1'://优惠券固定时间过期 default: $expireDate = $coupon->end_at; break; } if ($expireDate < Carbon::now()->toDateTimeString()) { $coupon->status = 3;//已过期 $coupon->save(); } } }
4.调用此事件
\Yii::$app->queue->delay(5 * 60)->push(new ExpireCouponJob(['couponId' => $this->id]));
下一篇: 互联网让我变得越发浅薄
推荐阅读
-
HTML5中div、article、section的区别及使用介绍
-
vue axios数据请求及vue中使用axios的方法
-
linux top命令查看内存及多核CPU的使用讲述
-
C#使用队列(Queue)解决简单的并发问题
-
Android编程实现全局获取Context及使用Intent传递对象的方法详解
-
使用 Eclipse 给 APK 签名遇到的问题及解决方法
-
Android中ViewFlipper的使用及设置动画效果实例详解
-
Android编程开发之打开文件的Intent及使用方法
-
Vue中在新窗口打开页面及Vue-router的使用
-
Linux中的进程守护supervisor安装配置及使用