/
DATKAI
/
ITCUP
Обзор
Документация
Войти
/
DATKAI
/
ITCUP
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
app/Console/Commands/NodeSuperviseCommand.php
41 строка
1 KB
DATKAI
feat(node-apps): модуль запуска Node.js-приложений
01 июл 2026, 20:21
01 июл 2026, 20:21
eb2eb23
Код
Авторство
О чём код?
<?php namespace App\Console\Commands; use App\Models\NodeApp; use App\Services\NodeAppService; use Illuminate\Console\Command; class NodeSuperviseCommand extends Command { protected $signature = 'itcup:node-supervise'; protected $description = 'Следит за Node.js-приложениями: автозапуск и перезапуск упавших'; public function handle(NodeAppService $svc): int { foreach (NodeApp::all() as $app) { $alive = $svc->isRunning($app); // Должно работать (status=running), но процесс умер if ($app->status === 'running' && !$alive) { if ($app->auto_restart) { $this->warn("[{$app->slug}] упал → перезапуск"); $svc->start($app); } else { $this->warn("[{$app->slug}] упал → остановлен"); $app->update(['status' => 'errored', 'pid' => null]); } continue; } // Автозапуск после перезагрузки: помечено autostart, но не запущено if ($app->autostart && $app->status !== 'running' && !$alive && $app->status !== 'errored') { $this->info("[{$app->slug}] автозапуск"); $svc->start($app); } } return self::SUCCESS; } }