企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
>[danger] 队列任务类 app\queue\Task.php 修改驱动类型为 redis ``` 'default' => 'redis', ``` ```php <?php namespace app\queue; use think\queue\Job; class Task { /** * 队列任务 * @param Job $job * @param [type] $data 自定义数据 */ public function fire(Job $job, $data) { //....这里执行具体的任务 try { $this->json($data); ######## 执行任务逻辑 ######## $rand = mt_rand(1, 10); $result = $rand > 5; if ( $result === true ) throw new \Exception('执行任务发生错误'); ######## 执行任务逻辑 / ######## $job->delete(); } catch (\Throwable $th) { // $job->attempts() 当前任务执行次数 if ( $job->attempts() > 2 ) { // 如果任务执行成功后 记得删除任务, // 不然这个任务会重复执行,直到达到最大重试次数后失败后,执行failed方法 $job->delete(); } else { // 重新发布任务 $delay = 1; $job->release($delay);//$delay为延迟时间 } } } /** * 任务执行失败时触发 */ public function failed($data) { // 任务达到最大重试次数后,失败了 } /** * 执行任务时输出自定义数据 */ public function json($data) { echo json_encode($data, JSON_UNESCAPED_UNICODE) . PHP_EOL; } } ```