insertGetId([ 'task_id' => $task_id, 'file_name' => $fullPath, 'type' => $value['type'] ?? '', 'status' => 0, 'log' => '队列中', 'create_time' => date('Y-m-d H:i:s') ]); $value['log_id'] = $log_id; // 5. 推送任务到对应队列 switch (trim($value['type'])) { case '图生文': Queue::push('app\job\ImageJob', $value, 'imgtotxt'); break; case '文生文': Queue::push('app\job\TextToTextJob', $value, 'txttotxt'); break; case '文生图': Queue::push('app\job\TextToImageJob', $value, 'txttoimg'); break; default: // 类型未知时不推送,并可写入错误日志 \think\Log::warning("未识别的任务类型:" . json_encode($value, JSON_UNESCAPED_UNICODE)); break; } } // 6. 更新任务状态为已启动 Db::name('queue_logs')->where('id', $task_id)->update(['status' => '已启动队列']); echo date('Y-m-d H:i:s') . " 队列已启动\n"; // 7. 删除当前队列任务 $job->delete(); } public function failed($data) { \think\Log::error("ImageArrJob 任务失败:" . json_encode($data, JSON_UNESCAPED_UNICODE)); } }