|
|
@@ -26,15 +26,16 @@ class ImageJob
|
|
|
*/
|
|
|
public function fire(Job $job, $data)
|
|
|
{
|
|
|
- echo "图生文开始\n";
|
|
|
+ echo date('Y-m-d H:i:s')."图生文开始\n";
|
|
|
// echo "接收的数据: " . json_encode($data) . "\n";
|
|
|
|
|
|
$logId = $data['log_id'] ?? null;
|
|
|
try {
|
|
|
- // 如果有 log_id,更新任务状态为“正在处理”
|
|
|
+ //录日志状态为“正在处理”
|
|
|
if ($logId) {
|
|
|
Db::name('queue_log')->where('id', $logId)->update([
|
|
|
- 'status' => 1, // 正在处理
|
|
|
+ 'status' => 1,
|
|
|
+ 'log' => '图生文正在处理',
|
|
|
'updated_at' => date('Y-m-d H:i:s')
|
|
|
]);
|
|
|
}
|
|
|
@@ -42,24 +43,38 @@ class ImageJob
|
|
|
// 执行业务逻辑
|
|
|
$str = $this->processImage($data);
|
|
|
echo $str;
|
|
|
- echo "图生文结束\n";
|
|
|
+ echo date('Y-m-d H:i:s')."图生文结束\n";
|
|
|
+
|
|
|
+ if ($logId) {
|
|
|
+ Db::name('queue_log')->where('id', $logId)->update([
|
|
|
+ 'status' => 2,
|
|
|
+ 'log' => '图生文执行成功',
|
|
|
+ 'updated_at' => date('Y-m-d H:i:s')
|
|
|
+ ]);
|
|
|
+ }
|
|
|
+
|
|
|
$job->delete();
|
|
|
} catch (\Exception $e) {
|
|
|
- // 如果有 log_id,更新任务状态为“执行失败”并记录错误信息
|
|
|
+ //异常处理,记录失败日志
|
|
|
+ echo "错误信息: " . $e->getMessage() . "\n";
|
|
|
+ echo "文件: " . $e->getFile() . "\n";
|
|
|
+ echo "行号: " . $e->getLine() . "\n";
|
|
|
+
|
|
|
if ($logId) {
|
|
|
Db::name('queue_log')->where('id', $logId)->update([
|
|
|
- 'status' => 3, // 执行失败
|
|
|
- 'log' => $e->getMessage(),
|
|
|
+ 'status' => 3, // 3 表示失败
|
|
|
+ 'log' => '图生文失败:' . $e->getMessage(),
|
|
|
'updated_at' => date('Y-m-d H:i:s')
|
|
|
]);
|
|
|
}
|
|
|
+ $job->delete();
|
|
|
|
|
|
// 最多重试一次(总执行两次)
|
|
|
- if ($job->attempts() < 2) {
|
|
|
- $job->release(30); // 延迟30秒再次执行
|
|
|
- } else {
|
|
|
- $job->failed(); // 达到最大尝试次数,标记失败
|
|
|
- }
|
|
|
+ // if ($job->attempts() < 2) {
|
|
|
+ // $job->release(30); // 延迟30秒再次执行
|
|
|
+ // } else {
|
|
|
+ // $job->failed(); // 达到最大尝试次数,标记失败
|
|
|
+ // }
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -88,7 +103,6 @@ class ImageJob
|
|
|
*/
|
|
|
public function imageToText($sourceDirRaw, $fileName, $prompt, $call_data)
|
|
|
{
|
|
|
-
|
|
|
// 自动拆分文件名
|
|
|
if (!$fileName && preg_match('/([^\/]+\.(jpg|jpeg|png))$/i', $sourceDirRaw, $matches)) {
|
|
|
$fileName = $matches[1];
|
|
|
@@ -206,7 +220,7 @@ class ImageJob
|
|
|
'chinese_description' => $chineseDesc,
|
|
|
'english_description' => $englishDesc,
|
|
|
'size' => "",
|
|
|
- 'status' => 0 // 正常待图生图状态
|
|
|
+ 'status' => 0
|
|
|
]);
|
|
|
//分解任务
|
|
|
$arr = [
|
|
|
@@ -217,10 +231,19 @@ class ImageJob
|
|
|
"englishDesc"=>$englishDesc,
|
|
|
"img_name"=>$img_name
|
|
|
];
|
|
|
- echo "现在推送";
|
|
|
- Queue::push('app\job\TextToImageJob', $arr,'txttoimg');
|
|
|
- return ;
|
|
|
- // 执行文生图
|
|
|
+
|
|
|
+ if($call_data['type'] == '图生文'){
|
|
|
+ echo "执行图生文结束";
|
|
|
+ return ;
|
|
|
+ }else{
|
|
|
+ // 执行文生图
|
|
|
+ echo "现在推送";
|
|
|
+ Queue::push('app\job\TextToImageJob', $arr,'txttoimg');
|
|
|
+ return ;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
}
|
|
|
public function logToDatabase($data)
|