官方文档

​https://packagist.org/packages/topthink/think-queue​

安装

composer require topthink/think-queue

sync 模式

同步的操作,过渡方案,小团队,或者测试环境推荐

database 模式

数据库模式,原理是通过轮训,看数据是3~4秒执行一次,感觉这个频率应该是可以调整的,对于数据非常非常敏感的时候,可以使用这个模式,但是数据库压力特别大的时候,这种模式不推荐。

如果使用这个模式,先要创建jobs 表,存储队列的信息

php think queue:table
php think queue:failed-table
php think migrate:run

thinkphp6队列的使用_job

redis 模式

redis 肯定是业内推荐的模式了,好处多多。

使用方法:

namespace app\job;

use think\queue\Job;

class Job1{

public function fire(Job $job, $data){

//....这里执行具体的任务

if ($job->attempts() > 3) {
//通过这个方法可以检查这个任务已经重试了几次了
}


//如果任务执行成功后 记得删除任务,不然这个任务会重复执行,直到达到最大重试次数后失败后,执行failed方法
$job->delete();

// 也可以重新发布这个任务
$job->release($delay); //$delay为延迟时间

}

public function failed($data){

// ...任务达到最大重试次数后,失败了
}

}
think\facade\Queue::push($job, $data = '', $queue = null) 和 think\facade\Queue::later($delay, $job, $data = '', $queue = null) 两个方法,前者是立即执行,后者是在$delay秒后执行

​​其他具体教程​​