yii2-queue队列的使用及解释

1.队列是一种特殊的线性表,先进先出的数据结构。
2.队列数据元素又称为队列元素。在队列中插入一个队列元素称为入队,在队列中删除一个队列元素成为出队。因为队列只允许在一端插入,在另一端删除,所以只有最早进入队列的元素才能最先从队列中删除,故队列又称为先进先出线性表。
项目中使用:
1.配置文件中:

	 'queue' => [
             'class' => \yii\queue\redis\Queue::class,
            'channel' => 'admin.xiaolutg.cn',//项目访问地址
    ],
  1. 创建一个要执行操作得类,比如说优惠券自动过期事件
  2.  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]));
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值