redis安装
php-redis扩展
安装queue
- composer require topthink/think-queue
消息队列实现
- 添加消息队列:think\Queue::push( 'app\que\Job' , $data , 'createOrderJob' );// 参数1:队列任务所在类;参数2:队列任务的业务参数;参数3:任务名称
- 队列任务函数
/**
* fire方法是消息队列默认调用的方法
* @param \think\queue\Job $job 当前的任务对象
* @param array|mixed $data 发布任务时自定义的数据
*/
public function fire(\think\queue\Job $job, $data)
{
//业务处理代码
$isJobDone = $this->create($data);
if ($isJobDone) {
// 任务执行成功,删除任务
$job->delete();
} else {
if ($job->attempts() > 2) {
// 重试两次后做以下操作
// 可以删除这个任务
$job->delete();
// 也可以重新发布这个任务
// $job->release(2); //延迟2秒后再次执行
}
}
}
private function create($data)
{
Log::info('执行队列:'.json_encode($data));
return true;
}
网友评论