windows环境下redis消息队列
2023-02-09 本文已影响0人
花佬爷
redis安装
- 我的网盘链接:https://pan.baidu.com/s/1v5ABpGQyMf780akKlg_rUQ
提取码:v5oj
php-redis扩展
- windows:https://windows.php.net/downloads/pecl/releases/redis/
- 注意phpinfo()的版本信息,windows系统信息
安装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;
}