option('date') ?? ''); $asOf = $opt !== '' ? Carbon::parse($opt)->toDateString() : now()->subDay()->toDateString(); // no-lock 옵션은 Service쪽에서 lock을 무시하려면 구조를 바꿔야 하는데, // 운영에서는 필요 없고, 테스트는 스케줄 없이 직접 커맨드 실행하면 되니 일단 유지. $res = $service->run($asOf); if (($res['skipped'] ?? false) === true) { $this->warn("SKIPPED (locked): {$asOf}"); return self::SUCCESS; } $this->info("DONE {$asOf} | daily={$res['daily_rows']} total={$res['total_rows']} stats={$res['stats_rows']}"); return self::SUCCESS; } }