示例#1
0
 /**
  * Execute the console command.
  *
  * @return mixed
  */
 public function handle()
 {
     $this->info('This will only rebuild the cache for track files which exist on disk; non-existent files will be skipped.');
     if ($this->option('force') || $this->confirm('Are you sure you want to rebuild the filesize cache? [y|N]', false)) {
         TrackFile::chunk(200, function ($trackFiles) {
             $this->info('========== Start Chunk ==========');
             foreach ($trackFiles as $trackFile) {
                 /** @var TrackFile $trackFile */
                 if (File::exists($trackFile->getFile())) {
                     $size = $trackFile->updateFilesize();
                     $this->info('ID ' . $trackFile->id . ' processed - ' . $size . ' bytes');
                 } else {
                     $this->info('ID ' . $trackFile->id . ' skipped');
                 }
             }
             $this->info('=========== End Chunk ===========');
         });
         $this->info('Rebuild complete. Exiting.');
     } else {
         $this->info('Rebuild cancelled. Exiting.');
     }
 }