// 创建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);
}
}
thinkphp6消息队列think-queue
最新推荐文章于 2024-06-28 17:22:22 发布