public function syncDataSources() { $sync = new Sync(); $sync->sync_status = 2; $sync->user_id = \Auth::id(); $sync->save(); return redirect('dashboard/datasources')->with('success', 'Data source sync started successfully.'); }
/** * SYNC STATUS * ------------- * 0: All data sources failed to sync * 1: All data sources successfully synced * 2: Sync Starting * 3: Sync Started * 4: Partial sync failure */ public static function boot() { parent::boot(); // Setup event bindings... Sync::creating(function ($sync) { if (!$sync->user_id) { return false; } }); Sync::created(function ($sync) { \Queue::push(new SyncQueue($sync->id)); }); }
/** * Execute the command. * * @return void */ public function handle() { \Log::info('[' . $this->job->getJobId() . ':' . $this->attempts() . '] Sync started.'); ini_set('memory_limit', '256M'); if ($this->attempts() > 3) { \Log::info('[' . $this->job->getJobId() . ':' . $this->attempts() . '] Sync failed.'); } else { $sync = Sync::find($this->sync_id); $datasources = DataSource::where('config_status', 1)->get(); foreach ($datasources as $datasource) { $datasource->syncData($sync); } // TODO: Check if all data sources synced successfully $sync->sync_status = 1; $sync->save(); \Log::info('[' . $this->job->getJobId() . ':' . $this->attempts() . '] Sync completed.'); } return; }