Ver Fonte

Merge branch 'test' into check_points

lh há 1 mês atrás
pai
commit
72100fdfb6

+ 11 - 8
app/Console/Commands/ProcessBatchEpisodeGenerationCommand.php

@@ -109,19 +109,22 @@ class ProcessBatchEpisodeGenerationCommand extends Command
         ];
 
         if (DIRECTORY_SEPARATOR === '/') {
-            // Linux:用 nohup 后台启动并立即返回,避免父进程退出时
-            // Symfony Process 析构(stop(0))把子进程一起杀掉
-            $commandLine = 'nohup ' . implode(' ', array_map('escapeshellarg', $command)) . ' > /dev/null 2>&1 &';
-            $process = Process::fromShellCommandline($commandLine);
+            // Linux:用 nohup 后台启动并立即返回。
+            // 使用 exec 而不是 Symfony Process,避免父进程退出时 Process 析构(stop(0))影响子进程;
+            // 子进程输出写入日志文件,便于排查拉起失败的原因。
+            $logFile = storage_path('logs/batch-worker-' . date('Ymd') . '.log');
+            $commandLine = 'nohup ' . implode(' ', array_map('escapeshellarg', $command))
+                . ' >> ' . escapeshellarg($logFile) . ' 2>&1 &';
+            exec($commandLine);
+            dLog('command')->info("拉起子进程命令: " . $commandLine);
         } else {
             // Windows:数组参数直接启动(开发环境)
             $process = new Process($command);
             $process->disableOutput();
+            $process->setTimeout(null);
+            $process->setIdleTimeout(null);
+            $process->start();
         }
-
-        $process->setTimeout(null);
-        $process->setIdleTimeout(null);
-        $process->start();
     }
 
     /**

+ 2 - 0
app/Services/Anime/AnimeService.php

@@ -200,6 +200,7 @@ class AnimeService
 
     public function createAnime($data) {
         $uid = Site::getUid();
+        $cpid = Site::getCpid();
         $input_art_style = getProp($data, 'art_style');
         $file = getProp($data, 'file');
         $content = getProp($data, 'content', '');
@@ -239,6 +240,7 @@ class AnimeService
 
         $anime_data = [
             'user_id'       => $uid,
+            'cpid'          => $cpid,
             'anime_name'    => '新剧本策划',
             'is_multi'      => getProp($data, 'is_multi', 1),
             'content'       => $content,