Commit 1100a35c authored by 刘小敏's avatar 刘小敏

优化日志

parent 7ef2101c
......@@ -39,7 +39,7 @@ class AiImgGen extends BaseJob
// }
// exit;
$this->debug_log('== '.date('Y-m-d H:i:s'). '[AI图片异步队列]AI图片生成脚本开始 userid '.$user_id.' id:'.$id.'=='.PHP_EOL, $user_id);
$this->debug_log('== '.date('Y-m-d H:i:s'). '['.$id.'][AI图片异步队列]AI图片生成脚本开始 userid '.$user_id.' id:'.$id.'=='.PHP_EOL, $user_id);
// 校验入参
if (empty($id) || empty($user_id)) {
......@@ -53,24 +53,24 @@ class AiImgGen extends BaseJob
// 查询tryon报表
$tryOn = AiTryOnModel::where('id', $id)->find();
if (!$tryOn) {
$this->debug_log('[AI图片异步队列][删除job]用户ID:'. $user_id .' id:'. $id .' 试戴记录不存在', $user_id);
$this->debug_log('['.$id.'][AI图片异步队列][删除job]用户ID:'. $user_id .' id:'. $id .' 试戴记录不存在', $user_id);
$job->delete();
return false;
}
if ($tryOn->ai_status !== 0) {
$this->debug_log('[AI图片异步队列][删除job]用户ID:'. $user_id .' id:'. $id .' 试戴记录已完成', $user_id);
$this->debug_log('['.$id.'][AI图片异步队列][删除job]用户ID:'. $user_id .' id:'. $id .' 试戴记录已完成', $user_id);
$job->delete();
return false;
}
$this->debug_log('[AI图片异步队列] AI生成图片接口入参 :用户ID:'. $user_id .' tryondata:'. json_encode($tryOn->toArray()), $user_id);
$this->debug_log('['.$id.'][AI图片异步队列] AI生成图片接口入参 :用户ID:'. $user_id .' tryondata:'. json_encode($tryOn->toArray()), $user_id);
// 合成AI图
$aiService = new Ai();
$res = $aiService->generateImage($tryOn->toArray(), $user_id, 'url');
$this->debug_log('[AI图片异步队列] AI生成图片接口出参 :用户ID:'. $user_id .' res:'. json_encode($res), $user_id);
$this->debug_log('['.$id.'][AI图片异步队列] AI生成图片接口出参 :用户ID:'. $user_id .' res:'. json_encode($res), $user_id);
// 我的试戴
if ($res['code'] === 0) {
......@@ -84,7 +84,7 @@ class AiImgGen extends BaseJob
$attachment = $aiService->saveFileLoc(isset($res['data']) ? $res['data'] : '', '.png', 'gen_ai', $user_id);
// 记录入参日志
$this->debug_log('[AI生成图片接口] user_id:' . $user_id . ' 保存到本地接口接口出参:' . json_encode($attachment), $user_id);
$this->debug_log('['.$id.'][AI生成图片接口] user_id:' . $user_id . ' 保存到本地接口接口出参:' . json_encode($attachment), $user_id);
if ($attachment === 0) {
AiTryOnModel::where('id', $id)->where('user_id', $user_id)->update(['ai_status' => 2, 'ai_err_msg' => '图片上传失败', 'user_id' => $user_id]);
......@@ -98,7 +98,7 @@ class AiImgGen extends BaseJob
// 发送消息通知
$aiService->sendNotification($user_id, $id);
$this->debug_log('[AI图片异步队列]删除Job', $user_id);
$this->debug_log('['.$id.'][AI图片异步队列]删除Job', $user_id);
$job->delete();
return true;
......@@ -106,14 +106,14 @@ class AiImgGen extends BaseJob
} catch (\Exception $e) {
AiTryOnModel::where('id', $id)->where('user_id', $user_id)->update(['ai_status' => 2, 'ai_err_msg' => '图片生成异常', 'user_id' => $user_id]);
$this->debug_log('[AI图片异步队列]异常: id:'.$id.' userId '. $user_id . ' LastSql:' . db()->getLastSql(), $user_id);
$this->debug_log('['.$id.'][AI图片异步队列]异常: id:'.$id.' userId '. $user_id . ' LastSql:' . db()->getLastSql(), $user_id);
format_log_error_custom_name($e, '[AI图片异步队列] user_id:'.$user_id, '', 'gen_ai');
// !empty($video_url) && $this->deleteLocalVideo($video_url); // 删除保存到本地的视频,如果已经保存了的话
// 删除队列job
$this->debug_log('[AI图片异步队列]删除Job', $user_id);
$this->debug_log('['.$id.'][AI图片异步队列]删除Job', $user_id);
$job->delete();
}
......
......@@ -29,7 +29,7 @@ class AiVideoGen extends BaseJob
$id = $data['id'];
$user = $data['user'];
$user_id = isset($user['id']) ? $user['id'] : 0;
$this->debug_log('=='.date('Y-m-d H:i:s'). '[AI视频生成异步队列]生成AI视频脚本开始 userid:'.$user_id.' id:'.$id.'=='.PHP_EOL, $user_id);
$this->debug_log('=='.date('Y-m-d H:i:s'). '['.$id.'][AI视频生成异步队列]生成AI视频脚本开始 userid:'.$user_id.' id:'.$id.'=='.PHP_EOL, $user_id);
// 开发过程中的临时代码 调试用
// $this->sendNotification($user_id, $taskid);
......@@ -39,7 +39,7 @@ class AiVideoGen extends BaseJob
// 校验入参
if ( empty($id) || empty($user_id)) {
$this->debug_log('[AI视频生成异步队列][删除Job]入参有空值 tryon_id:'.$id .' user_id:'.$user_id, $user_id);
$this->debug_log('['.$id.'][AI视频生成异步队列][删除Job]入参有空值 tryon_id:'.$id .' user_id:'.$user_id, $user_id);
// 删除队列job
$job->delete();
......@@ -51,14 +51,14 @@ class AiVideoGen extends BaseJob
// 检查记录是否存在
if (!$tryon) {
$this->debug_log('[AI视频生成异步队列][删除Job]试戴记录不存在: id='.$id, $user_id);
$this->debug_log('['.$id.'][AI视频生成异步队列][删除Job]试戴记录不存在: id='.$id, $user_id);
$job->delete();
return false;
}
// 检查是否已有任务ID(去重)
if (!empty($tryon['ai_task_id']) || $tryon['ai_status'] !== 0) {
$this->debug_log('[AI视频生成异步队列][删除Job]已有任务ID,跳过: id='.$id.', task_id='.$tryon['ai_task_id'], $user_id);
$this->debug_log('['.$id.'][AI视频生成异步队列][删除Job]已有任务ID,跳过: id='.$id.', task_id='.$tryon['ai_task_id'], $user_id);
$job->delete();
return false;
}
......@@ -72,7 +72,7 @@ class AiVideoGen extends BaseJob
$tryonModel = new AiTryOnModel();
$tryonModel->where('id', $id)->update(['ai_status' => 2, 'ai_err_msg' => $res['msg']]);
$this->debug_log('[AI视频生成异步队列][删除Job]合成AI视频失败 tryon_id:'.$id .' user_id:'.$user_id.' msg:'.$res['msg'], $user_id);
$this->debug_log('['.$id.'][AI视频生成异步队列][删除Job]合成AI视频失败 tryon_id:'.$id .' user_id:'.$user_id.' msg:'.$res['msg'], $user_id);
// 删除队列job
$job->delete();
......@@ -96,7 +96,7 @@ class AiVideoGen extends BaseJob
} catch (\Exception $e) {
// 队列执行失败,记录日志并删除队列job
format_log_error_custom_name($e, '[AI视频生成异步队列][异常][删除Job] user_id:'.$user_id, '', 'gen_ai');
format_log_error_custom_name($e, '['.$id.'][AI视频生成异步队列][异常][删除Job] user_id:'.$user_id, '', 'gen_ai');
// 删除队列job
$job->delete();
......
......@@ -44,15 +44,15 @@ class AiVideoRetry extends BaseJob
$user = $data['user'];
$user_id = isset($user['id']) ? $user['id'] : 0;
$this->debug_log(' =='.date('Y-m-d H:i:s'). ' [AI视频查询异步队列]查询AI视频状态脚本开始 userid '.$user_id.' taskid:'.$taskid.' id:'.$id.'=='.PHP_EOL , $user_id);
$this->debug_log(' =='.date('Y-m-d H:i:s'). ' ['.$id.'][AI视频查询异步队列]查询AI视频状态脚本开始 userid '.$user_id.' taskid:'.$taskid.' id:'.$id.'=='.PHP_EOL , $user_id);
// 校验入参
if (empty($id) || empty($user_id) || empty($taskid)) {
$this->debug_log('[AI视频查询异步队列]入参有空值 tryon_id:'.$id .' user_id:'.$user_id.' taskid:'.$taskid , $user_id);
$this->debug_log('['.$id.'][AI视频查询异步队列]入参有空值 tryon_id:'.$id .' user_id:'.$user_id.' taskid:'.$taskid , $user_id);
// 删除队列job
$this->debug_log('[AI视频查询异步队列]删除Job', $user_id);
$this->debug_log('['.$id.'][AI视频查询异步队列]删除Job', $user_id);
$job->delete();
return false;
}
......@@ -68,7 +68,7 @@ class AiVideoRetry extends BaseJob
'allow_redirects' => true
];
$this->debug_log('[AI视频查询异步队列]请求AI接口入参 user_id:'.$user_id.' AI接口url:'.$url.' params:'.json_encode($params), $user_id);
$this->debug_log('['.$id.'][AI视频查询异步队列]请求AI接口入参 user_id:'.$user_id.' AI接口url:'.$url.' params:'.json_encode($params), $user_id);
// 向AI接口 发送请求
$client = new Http();
......@@ -78,7 +78,7 @@ class AiVideoRetry extends BaseJob
$content = preg_replace('/[^\x20-\x7E]/', '', $content);
$result = json_decode($content, true);
$this->debug_log('[AI视频查询异步队列]请求AI接口出参 response:'.json_encode($result), $user_id);
$this->debug_log('['.$id.'][AI视频查询异步队列]请求AI接口出参 response:'.json_encode($result), $user_id);
// 2. AI接口 返回值处理 接口失败场景
if (isset($result['error'])){
......@@ -89,7 +89,7 @@ class AiVideoRetry extends BaseJob
->update(['ai_status' => 2, 'ai_err_msg' => $message]);
// 删除队列job
$this->debug_log('[AI视频查询异步队列]删除Job', $user_id);
$this->debug_log('['.$id.'][AI视频查询异步队列]删除Job', $user_id);
$job->delete();
return false;
}
......@@ -104,22 +104,22 @@ class AiVideoRetry extends BaseJob
$aiService = new Ai();
$video_url = $aiService->saveFileLoc(isset($result['content']['video_url']) ? $result['content']['video_url'] : '', '.mp4', 'gen_ai', $user_id);
$this->debug_log('[AI视频查询异步队列]保存本地接口返回值 video_url:'.$video_url, $user_id);
$this->debug_log('['.$id.'][AI视频查询异步队列]保存本地接口返回值 video_url:'.$video_url, $user_id);
if ($video_url === 0){
AiTryOnModel::where('user_id', $user_id)->where('ai_task_id', $taskid)->update(['ai_status' => 2, 'ai_err_msg' => '视频保存到本地失败']);
$this->debug_log('[AI视频查询异步队列]保存本地视频失败 sql: '.db()->getLastSql(), $user_id);
$this->debug_log('['.$id.'][AI视频查询异步队列]保存本地视频失败 sql: '.db()->getLastSql(), $user_id);
}
// 更新我的试戴记录
AiTryOnModel::where('user_id', $user_id)->where('ai_task_id', $taskid)->update(['ai_status' => 1,'ai_url' => config('shopro.api_host').$video_url, 'ai_err_msg' => '视频已完成']);
$this->debug_log('[AI视频查询异步队列]保存本地视频成功 sql: '.db()->getLastSql(), $user_id);
$this->debug_log('['.$id.'][AI视频查询异步队列]保存本地视频成功 sql: '.db()->getLastSql(), $user_id);
// 发送成功消息通知
$aiService->sendNotification($user_id, $id);
// 删除队列job
$this->debug_log('[AI视频查询异步队列]删除Job', $user_id);
$this->debug_log('['.$id.'][AI视频查询异步队列]删除Job', $user_id);
$job->delete();
break;
......@@ -136,12 +136,12 @@ class AiVideoRetry extends BaseJob
][$result['status']];
AiTryOnModel::where('user_id', $user_id)->where('ai_task_id', $taskid)->update(['ai_status' => 2, 'ai_err_msg' => $msg]);
$this->debug_log('[AI视频查询异步队列]AI视频任务 过期: taskId: ' . $taskid . 'userId '. $user_id, $user_id);
$this->debug_log('[AI视频查询异步队列]AI视频任务 过期: result:'.json_encode($result), $user_id);
$this->debug_log('[AI视频查询异步队列]AI视频任务 过期: sql:' .db()->getLastSql(), $user_id);
$this->debug_log('['.$id.'][AI视频查询异步队列]AI视频任务 过期: taskId: ' . $taskid . 'userId '. $user_id, $user_id);
$this->debug_log('['.$id.'][AI视频查询异步队列]AI视频任务 过期: result:'.json_encode($result), $user_id);
$this->debug_log('['.$id.'][AI视频查询异步队列]AI视频任务 过期: sql:' .db()->getLastSql(), $user_id);
// 删除队列job
$this->debug_log('[AI视频查询异步队列]删除Job', $user_id);
$this->debug_log('['.$id.'][AI视频查询异步队列]删除Job', $user_id);
$job->delete();
break;
......@@ -161,14 +161,14 @@ class AiVideoRetry extends BaseJob
} catch (\Exception $e) {
AiTryOnModel::where('user_id', $user_id)->where('ai_task_id', $taskid)->update(['ai_status' => 2, 'ai_err_msg' => '视频生成异常']);
$this->debug_log('[AI视频异步队列]异常: taskId: ' . $taskid . 'userId '. $user_id, $user_id);
$this->debug_log('[AI视频异步队列]异常: sql:' .db()->getLastSql(), $user_id);
$this->debug_log('['.$id.'][AI视频异步队列]异常: taskId: ' . $taskid . 'userId '. $user_id, $user_id);
$this->debug_log('['.$id.'][AI视频异步队列]异常: sql:' .db()->getLastSql(), $user_id);
// 队列执行失败
format_log_error_custom_name($e, '[AI视频异步队列] user_id:'.$user_id, '', 'gen_ai');
// 删除队列job
$this->debug_log('[AI视频异步队列]删除Job', $user_id);
$this->debug_log('['.$id.'][AI视频异步队列]删除Job', $user_id);
$job->delete();
}
......@@ -189,14 +189,14 @@ class AiVideoRetry extends BaseJob
$data['retry_count'] = $retryCount; // 存储到data中
// release(0) 立即放入队尾,release($delay) 延迟后放入队尾
$this->debug_log('[AI视频查询异步队列]放入队尾Job: taskId: ' . $taskid . ' userId: '. $user_id . ' retryCount: ' . $retryCount. 'id: ' . $id, $user_id);
$this->debug_log('['.$id.'][AI视频查询异步队列]放入队尾Job: taskId: ' . $taskid . ' userId: '. $user_id . ' retryCount: ' . $retryCount. 'id: ' . $id, $user_id);
$job->release(self::RETRY_DELAY);
} else {
// 重试次数已达上限,标记失败
AiTryOnModel::where('user_id', $user_id)->where('ai_task_id', $taskid)->update(['ai_status' => 2, 'ai_err_msg' => '视频生成超时']);
$this->debug_log('[AI视频查询异步队列]超时未得到结果: taskId: ' . $taskid . 'userId '. $user_id . ' retryCount: ' . $retryCount. 'id: ' . $id, $user_id);
$this->debug_log('[AI视频查询异步队列][删除Job]超时未得到结果: sql:' .db()->getLastSql(), $user_id);
$this->debug_log('['.$id.'][AI视频查询异步队列]超时未得到结果: taskId: ' . $taskid . 'userId '. $user_id . ' retryCount: ' . $retryCount. 'id: ' . $id, $user_id);
$this->debug_log('['.$id.'][AI视频查询异步队列][删除Job]超时未得到结果: sql:' .db()->getLastSql(), $user_id);
// 删除队列job
$job->delete();
......
......@@ -285,7 +285,7 @@ class Ai
// 查询tryon报表
$tryOn = AiTryOnModel::where('id', $id)->find();
if (!$tryOn) {
custom_log('[AI视频生成异步队列]用户ID:'. $userId .' id:'. $id .' 试戴记录不存在', $userId, 'gen_ai');
custom_log('['.$id.'][AI视频生成异步队列]用户ID:'. $userId .' id:'. $id .' 试戴记录不存在', $userId, 'gen_ai');
return [
'code' => 0 ,
'msg' => '试戴记录不存在'
......@@ -300,7 +300,7 @@ class Ai
// 保存图片到本地做备份
$attachment = $this->saveFileLoc(isset($resGenImg['data']) ? $resGenImg['data'] : '', '.png', 'gen_ai', $userId);
custom_log('[AI视频生成异步队列]用户ID:'. $userId .' id:'. $id .'图片保存到本地接口接口出参:'. json_encode($attachment), $userId, 'gen_ai');
custom_log('['.$id.'][AI视频生成异步队列]用户ID:'. $userId .' id:'. $id .'图片保存到本地接口接口出参:'. json_encode($attachment), $userId, 'gen_ai');
// 调试的时候用,一张AI佩戴饰品的照片
// $resGenImg['data'] = 'https://ark-acg-cn-beijing.tos-cn-beijing.volces.com/doubao-seedream-5-0/02177752801269334e1fb186d00f6ff5c484dce264092c4da58e2_0.jpeg?X-Tos-Algorithm=TOS4-HMAC-SHA256&X-Tos-Credential=AKLTYWJkZTExNjA1ZDUyNDc3YzhjNTM5OGIyNjBhNDcyOTQ%2F20260430%2Fcn-beijing%2Ftos%2Frequest&X-Tos-Date=20260430T054730Z&X-Tos-Expires=86400&X-Tos-Signature=2d109489c534c8bd9e2f9f1820edff8956916da5ee5a477022f6ab8d3024af19&X-Tos-SignedHeaders=host';
......@@ -310,7 +310,7 @@ class Ai
// $prompt = '人物轻动转头,自然微笑眨眼,动作流畅柔和,画面稳定无抖动扭曲,真人高清质感,饰品完整清晰展示,整体优雅自然,无变形穿模悬浮';
// $prompt = '人物微动转头微笑,不要眨眼,动作顺滑画面稳定,高清真人质感,饰品清晰展示,无变形悬浮穿模';
// $prompt = '人物全程全脸出镜,真人实拍质感,自然轻微转头浅笑,双目全程不眨眼,饰品完美展示,画面流畅稳定无卡顿,饰品轮廓细节清晰锐利,杜绝变形、悬浮、穿模问题,整体画质高清细腻。';
$prompt = '人物自然微动,轻微转头,微笑,动作柔和流畅,画面稳定不闪烁、不抖动、不扭曲,真实人像质感,高清清晰,耳部饰品完美展示,整体自然优雅,无变形、无穿模、无悬浮';
$prompt = '人物自然微动,轻微转头,微笑,动作柔和流畅,画面稳定不闪烁、不抖动、不扭曲,真实人像质感,高清清晰,耳部饰品完美展示,整体自然优雅,无变形、无穿模、无悬浮、无漂浮、无飞动、无悬空、无拉伸、无重复、无错位问题。';
$params = [
'headers' => [
'Authorization' => 'Bearer ' . $this->api_key,
......@@ -339,7 +339,7 @@ class Ai
];
// 记录入参日志
custom_log('[AI视频生成异步队列]用户ID:'. $userId .' AI生成视频接口入参:'.json_encode($params), $userId, 'gen_ai');
custom_log('['.$id.'][AI视频生成异步队列]用户ID:'. $userId .' AI生成视频接口入参:'.json_encode($params), $userId, 'gen_ai');
// AI接口 发送请求
$client = new Http();
......@@ -351,7 +351,7 @@ class Ai
$result = json_decode($content, true);
// 记录出参日志
custom_log('[AI视频生成异步队列]用户ID:'. $userId .' AI生成视频接口返回:'.json_encode($result), $userId, 'gen_ai');
custom_log('['.$id.'][AI视频生成异步队列]用户ID:'. $userId .' AI生成视频接口返回:'.json_encode($result), $userId, 'gen_ai');
return [
'code' => 1 ,
......@@ -360,7 +360,7 @@ class Ai
];
} catch (\Exception $e) {
format_log_error_custom_name($e, '[AI视频异步队列][生成异常] 用户ID:'. $userId , '', 'gen_ai' );
format_log_error_custom_name($e, '['.$id.'][AI视频异步队列][生成异常] 用户ID:'. $userId , '', 'gen_ai' );
return [
'code' => 0 ,
'msg' => '视频生成失败'
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment