/**
  * Tick callback
  *
  * @param Tick $tick
  */
 public function tick(Tick $tick)
 {
     $rpt = $tick->getReport();
     if (!$this->progressBar) {
         $this->start($tick);
     }
     $msgSegs = [$tick->getMessage()];
     if ($this->output->getVerbosity() >= OutputInterface::VERBOSITY_VERBOSE) {
         $msgSegs[] = sprintf('Processed: <fg=green>%s</fg=green>', number_format($rpt->getNumItemsSuccess(), 0));
         $msgSegs[] = sprintf('Skipped: <fg=yellow>%s</fg=yellow>', number_format($rpt->getNumItemsFail(), 0));
         $msgSegs[] = sprintf('Failed: <fg=red>%s</fg=red>', number_format($rpt->getNumItemsSkip(), 0));
     }
     if ($this->output->getVerbosity() >= OutputInterface::VERBOSITY_VERY_VERBOSE) {
         $msgSegs[] = sprintf("Avg: %s", number_format($rpt->getAvgItemTime(), 2));
         $msgSegs[] = sprintf('Memory: %s/%s', $this->bytesToHuman($rpt->getMemUsage(), 2), $this->bytesToHuman($rpt->getMemPeakUsage(), 2));
     }
     $this->progressBar->setMessage(implode(' | ', $msgSegs));
     $this->progressBar->setProgress($rpt->getNumItemsProcessed());
     //$this->progressBar->advance($rpt->getTick()->getIncrementBy());
 }
Exemple #2
0
 /**
  * Abort callback
  *
  * @param Tick $tick
  */
 public function abort(Tick $tick)
 {
     $this->logger->warning($tick->getMessage() ?: 'Aborted', $tick->getReport()->toArray());
 }
 /**
  * Write Log Line
  *
  * @param Tick $tick
  */
 public function writeLogLine(Tick $tick)
 {
     // Line segments
     $lineSegs = array();
     // 1st Segment is a star
     switch ($tick->getStatus()) {
         case Tick::SUCCESS:
             $lineSegs[] = sprintf("<fg=green>%s</fg=green>", $this->linePrefixMap[Tick::SUCCESS]);
             break;
         case Tick::FAIL:
             $lineSegs[] = sprintf("<fg=red>%s</fg=red>", $this->linePrefixMap[Tick::FAIL]);
             break;
         case Tick::SKIP:
         default:
             $lineSegs[] = $this->linePrefixMap[Tick::SKIP];
     }
     // Item Progress
     $lineSegs[] = sprintf("[%s%s]", $tick->getReport()->getNumItemsProcessed(), $tick->getReport()->getTotalItemCount() != Tracker::UNKNOWN ? "/" . $tick->getReport()->getTotalItemCount() : '');
     // If verbose, add walltime and item counts
     if ($this->output->getVerbosity() >= OutputInterface::VERBOSITY_VERBOSE) {
         $lineSegs[] = $this->formatSeconds($tick->getReport()->getTimeElapsed());
         $lineSegs[] = sprintf('(<fg=green>%s</fg=green>/%s/<fg=red>%s</fg=red>)', $tick->getReport()->getNumItemsSuccess(), $tick->getReport()->getNumItemsSkip(), $tick->getReport()->getNumItemsFail());
     }
     // If very verbose, add memory usage
     if ($this->output->getVerbosity() >= OutputInterface::VERBOSITY_VERY_VERBOSE) {
         $lineSegs[] = sprintf("{%s/%s}", $this->bytesToHuman($tick->getReport()->getMemUsage()), $this->bytesToHuman($tick->getReport()->getMemPeakUsage()));
     }
     // Add message
     $lineSegs[] = $tick->getMessage() ?: sprintf("Processing item %s", number_format($tick->getReport()->getNumItemsProcessed(), 0));
     // Output it!
     $this->output->writeln(implode(' ', $lineSegs));
 }