Exemplo n.º 1
0
 /**
  * @return int
  */
 public function execute()
 {
     $this->_logger->setInstanceName($this->instanceName);
     $this->_pidFile = new PidFile("", $this->instanceName);
     echo Shell::colourText((new Figlet("speed"))->render("Defero"), Shell::COLOUR_FOREGROUND_GREEN);
     echo "\n";
     Log::debug("Setting Default Queue Provider to " . $this->queueService);
     Queue::setDefaultQueueProvider($this->queueService);
     $queue = Queue::getAccessor();
     if ($queue instanceof DatabaseQueue) {
         $instance = gethostname();
         if ($this->instanceName) {
             $instance .= ':' . $this->instanceName;
         }
         $queue->setOwnKey($instance);
     }
     $priority = (int) $this->priority;
     if (in_array($priority, [1, 5, 10, 99])) {
         $this->queueName .= $priority;
     } else {
         throw new \Exception("Invalid priority. Supported values: 1 , 5, 10, 99");
     }
     Log::info("Starting to consume queue " . $this->queueName);
     $queue->consume(new StdQueue($this->queueName), new CampaignConsumer());
     Log::info("Exiting Defero Processor");
 }
Exemplo n.º 2
0
 /**
  * Execute the process
  *
  * @return int|void
  */
 public function execute()
 {
     $articles = Article::collection();
     if ($articles->count() === 0) {
         echo 'No articles to list.';
         exit;
     }
     $platforms = Platform::collection();
     foreach ($articles as $article) {
         echo PHP_EOL;
         echo Shell::colourText("Title: " . $article->title . PHP_EOL, true, Shell::COLOUR_FOREGROUND_BROWN, Shell::COLOUR_BACKGROUND_RED);
         echo 'Article ID:  ' . $article->id() . PHP_EOL;
         echo 'Sub-Title:   ' . $article->subTitle . PHP_EOL;
         echo 'View:   ' . $article . PHP_EOL;
         foreach ($article->getBlockGroups() as $blockGroup) {
             foreach ($blockGroup->getBlocks() as $block) {
                 /** @var Platform $platform */
                 $platform = $platforms->getById($block->platformId);
                 echo PHP_EOL;
                 echo 'Block Platform: ' . $platform->name . PHP_EOL;
                 echo 'Block Title: ' . $block->title . PHP_EOL;
                 echo 'Block Content: ' . $block->content . PHP_EOL;
             }
         }
         echo PHP_EOL;
     }
     return $this;
 }
Exemplo n.º 3
0
 /**
  * @return int
  */
 public function execute()
 {
     $this->_logger->setInstanceName($this->instanceName);
     $this->_pidFile = new PidFile("", $this->instanceName);
     echo Shell::colourText((new Figlet("speed"))->render("Defero"), Shell::COLOUR_FOREGROUND_GREEN);
     echo "\n";
     Log::debug("Setting Default Queue Provider to " . $this->queueService);
     Queue::setDefaultQueueProvider($this->queueService);
     $queue = Queue::getAccessor();
     if ($queue instanceof DatabaseQueue) {
         $instance = gethostname();
         if ($this->instanceName) {
             $instance .= ':' . $this->instanceName;
         }
         $queue->setOwnKey($instance);
     }
     Log::info("Starting to consume queue " . $this->queueName);
     $queue->consume(new StdQueue($this->queueName), new CampaignQueueConsumer());
     Log::info("Exiting Defero Processor");
 }
Exemplo n.º 4
0
 /**
  * Perform a database reset
  * --reset=true
  *
  * @return $this
  */
 protected function _resetDatabase()
 {
     if (!$this->reset) {
         return $this;
     }
     echo Shell::colourText("***** Resetting Database!!! *****", true, Shell::COLOUR_FOREGROUND_BROWN, Shell::COLOUR_BACKGROUND_RED);
     echo PHP_EOL;
     $reset = UserPrompt::confirm('Are you sure? You will lose ALL data?');
     if (!$reset) {
         exit;
     }
     /** @var RecordMapper[] $mappers */
     $mappers = [new User(), new Platform(), new PlatformText(), new Category(), new CategoryText(), new Article(), new ArticleText(), new ArticleSectionBlock(), new ArticleSection(), new Video(), new VideoCaption(), new VideoText(), new Walkthrough(), new WalkthroughStep(), new WalkthroughText()];
     foreach ($mappers as $mapper) {
         $mapper->createTable(true);
         echo Shell::colourText(sprintf("Dropped & Created `%s`", $mapper->tableName()), true, Shell::COLOUR_FOREGROUND_LIGHT_GREY, Shell::COLOUR_BACKGROUND_RED);
         echo PHP_EOL;
     }
     echo 'Done, now run without flag...' . PHP_EOL;
     exit;
 }
Exemplo n.º 5
0
 private function _generatePrettyReport(TokenRange $currentRange, $now, $rangeStartTime, $rangeTotal, $rangeProcessed, $rangeErrors, $currentRate, $rangeSkipped, $totalSkipped, $totalDuration, $averageRate, $lastKey)
 {
     $t = new TextTable(new ReportTableDecorator());
     $t->appendSubHeading('Current Range ' . Shell::colourText("(" . $currentRange->id() . ")", Shell::COLOUR_FOREGROUND_LIGHT_GREY));
     $t->appendRows([['Start token', $currentRange->startToken], ['End token', $currentRange->endToken], ['First key', $currentRange->firstKey], ['Last key', $currentRange->lastKey]]);
     $t->appendSubHeading('Range statistics');
     $t->appendRows([['Processing time', DateTimeHelper::secondsToTime($now - $rangeStartTime)], ['Total items', number_format($rangeTotal)], ['Processed items', number_format($rangeProcessed)], ['Skipped', number_format($rangeSkipped)], ['Errors', number_format($rangeErrors)], ['Processing rate', number_format($currentRate) . ' items/second']]);
     $t->appendSubHeading('Total');
     $t->appendRows([['Processing time', DateTimeHelper::secondsToTime($totalDuration)], ['Total items', number_format($this->totalItems)], ['Processed items', number_format($this->processedItems)], ['Skipped', number_format($totalSkipped)], ['Errors', number_format($this->errors)], ['Processing rate', number_format($averageRate) . ' items/second']]);
     $t->appendSpacer();
     $t->appendRow(['Last key seen', $lastKey]);
     ob_start();
     echo $_REQUEST['__path__'] . "\n";
     echo $t;
     EventManager::trigger(Events::DISPLAY_REPORT_END);
     return ob_get_clean();
 }
Exemplo n.º 6
0
 private function _generatePrettyReport(BucketRange $currentRange, $now, $rangeStartTime, $rangeTotal, $rangeProcessed, $currentRate, $rangeSkipped, $totalSkipped, $totalDuration, $averageRate, $lastObject)
 {
     $t = new TextTable(new ReportTableDecorator());
     $t->appendSubHeading('Current Range ' . Shell::colourText("(" . $currentRange->id() . ")", Shell::COLOUR_FOREGROUND_LIGHT_GREY));
     $t->appendRow(['Prefix', $currentRange->prefix]);
     $t->appendSubHeading('Range statistics');
     $t->appendRows([['Processing time', DateTimeHelper::secondsToTime($now - $rangeStartTime)], ['Total items', number_format($rangeTotal)], ['Processed items', number_format($rangeProcessed)], ['Skipped', number_format($rangeSkipped)], ['Processing rate', number_format($currentRate) . ' items/second']]);
     $t->appendSubHeading('Total');
     $t->appendRows([['Processing time', DateTimeHelper::secondsToTime($totalDuration)], ['Total items', number_format($this->totalItems)], ['Processed items', number_format($this->processedItems)], ['Skipped', number_format($totalSkipped)], ['Processing rate', number_format($averageRate) . ' items/second']]);
     $t->appendSpacer();
     $t->appendRow(['Last object seen', $lastObject]);
     ob_start();
     EventManager::trigger(Events::DISPLAY_REPORT_START);
     echo $t;
     EventManager::trigger(Events::DISPLAY_REPORT_END);
     return ob_get_clean();
 }