get(self::CURSOR_KEY) ?: 0; $query = DB::connection('vd_old')->table('logs')->whereIn('type', array_keys(LogSyncJob::$types)) ->where('id', '>', $maxId)->orderBy('id'); $nextId = $query->max('id'); $total = $query->count(); $this->line('待同步条数:'.$total); if ($total) { Artisan::call('virtual:sync-company'); Artisan::call('virtual:sync-package'); Artisan::call('virtual:sync-product'); } $page = 2; $jobs = new Collection(); while ($total) { if (($page - 1) * $this->limit >= $total) { break; } $jobs->push(new LogSyncJob($page, $this->limit, $maxId)); $page++; } $total && LogSyncJob::withChain($jobs->toArray()) ->dispatch(1, $this->limit, $maxId) ->allOnQueue('sync'); $nextId && app(ConfigService::class)->set(self::CURSOR_KEY, $nextId); } }