thinkphp6消息队列think-queue

14 篇文章 0 订阅
// 创建JobQueue.php
<?php
namespace app\job;

use think\queue\Job;

class JobQueue
{
public function fire(Job $job, $data)
{
    if ($job->attempts() > 3) {
        $job->delete();
    }
    $doJob = $this->doJob($data);
    if ($doJob) {
        $job->delete();
    }else{
        $job->release(3);		// 3秒后重试
    }
}

/**
 * 根据消息中的数据进行实际的业务处理...
 * @param array|mixed $data
 */
	private function doJob($data)
 {
 	// 处理逻辑、数据库操作
    return true;
 }

/**
 * @param $data
 * @Version 2.0 失败处理
 */
    public function failed($data)
    {
        // 失败处理
 	}
}

// 在控制器使用 Index.php
<?php
namespace app\http;
use think\facade\Queue;
class Index{
public function index(){
		$class = 'app\job\JobQueue';	// 类名
		$name = 'my_queue';	// 队列名称
		$rest = $this->request->post();
		Queue::later(1, $class, $rest, $name);
	}
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值