option('full')) { return self::SUCCESS; } try { $result = $synchronizer->sync( self::DATASET, (bool) $this->option('full'), $this->option('batch') === null ? null : (int) $this->option('batch'), $this->option('max-batches') === null ? null : (int) $this->option('max-batches'), ); } catch (Throwable $exception) { Log::error('账单冲减共享镜像同步失败。', [ 'dataset' => self::DATASET, 'exception' => $exception::class, 'message' => $exception->getMessage(), ]); $this->error('账单冲减共享镜像同步失败,已保留上一版共享数据。'); return self::FAILURE; } if ($result['status'] === 'requires_full_sync') { $this->warn('账单冲减共享镜像尚未执行首次全量同步,请显式使用 --full。'); return self::SUCCESS; } $this->info(sprintf( '账单冲减镜像(%s):%s,本轮 %d 批,累计处理 %d 行。', self::DATASET, $result['status'] === 'succeeded' ? '同步完成' : '同步进行中', $result['batches'], $result['rows'], )); return self::SUCCESS; } }