Example #1
0
 /**
  * {@inheritdoc}
  */
 public function process(IndentedLoggerInterface $out, ContainerAwareCommand $command = null)
 {
     $links = $this->getLinks();
     $data = $this->compiler->generateSitemap($links);
     file_put_contents($this->filedir . '/' . $this->filepath, $data);
     $out->writeln(count($links) . ' links processed');
 }
 /**
  * @inheritdoc
  *
  * @LoggerAware()
  */
 public function process(IndentedLoggerInterface $output, ContainerAwareCommand $command = null)
 {
     $this->logger->debug('Processing queue');
     $output->write('Processing queue... ');
     $jobs = $this->repoJob->getLastActive(50);
     $this->toggleJobsLocks($jobs, true);
     $amount = 0;
     $skipped = 0;
     $failed = 0;
     foreach ($jobs as $job) {
         try {
             $this->em->refresh($job);
             if (!$job->isActive()) {
                 continue;
             }
             $result = $this->processJob($job);
             if ($result === true) {
                 $amount++;
             } elseif ($result === -1) {
                 $skipped++;
             } else {
                 $failed++;
             }
         } catch (\Exception $e) {
             $output->write('finished with exception. ');
             break;
         }
     }
     $this->toggleJobsLocks($jobs, false);
     $output->writeln(sprintf('%s processed, %s skipped, %s failed', (string) $amount, (string) $skipped, (string) $failed));
     $this->logger->debug('finished');
     if (isset($e)) {
         throw $e;
     }
 }
 /**
  * {@inheritdoc}
  */
 public function process(IndentedLoggerInterface $logger, ContainerAwareCommand $command = null, $class = null, $noStuff = false)
 {
     uasort($this->providers, function ($a, $b) {
         if ($a['priority'] == $b['priority']) {
             return 0;
         }
         return $a['priority'] > $b['priority'] ? -1 : 1;
     });
     if ($class) {
         if (!isset($this->providers[$class])) {
             throw new ProviderNotFoundException('Provider not found: ' . $class);
         }
         $provider = $this->providers[$class];
         $list = [$class => $provider];
     } else {
         $list = $this->providers;
     }
     foreach ($list as $class => $row) {
         if ($class == 'stuff' && $noStuff) {
             $logger->writeln('Stuff skipped');
             continue;
         }
         $provider = $row['provider'];
         /** @var CompileProviderInterface $provider */
         $logger->write('Processing ' . $class . ': ');
         $provider->process($logger, $command);
     }
 }
 /**
  * {@inheritdoc}
  */
 public function process(IndentedLoggerInterface $logger, ContainerAwareCommand $command = null)
 {
     $logger->writeln('running update');
     $logger->indent();
     try {
         $this->stuff->process($logger, $command, null, false, 1);
     } catch (NoProvidersException $e) {
         $logger->writeln('Stuff skipped as not providers found' . PHP_EOL);
     }
     $logger->outdent();
 }
Example #5
0
 /**
  * {@inheritdoc}
  */
 public function process(IndentedLoggerInterface $logger, ContainerAwareCommand $command = null, $class = null, $tickin = false)
 {
     $tick = $tickin;
     if (!count($this->providers)) {
         throw new NoProvidersException('No providers found');
     }
     if (!$class) {
         if (!$tick) {
             $tick = $this->ticker->addTick();
         }
         if (!$tickin) {
             $logger->writeln('Current tick is ' . $tick);
         } else {
             $logger->writeln('Forcing tick to ' . $tick);
         }
     }
     uasort($this->providers, function ($a, $b) {
         if ($a['priority'] == $b['priority']) {
             return 0;
         }
         return $a['priority'] > $b['priority'] ? -1 : 1;
     });
     if ($class) {
         if (!isset($this->providers[$class])) {
             throw new ProviderNotFoundException('Provider not found: ' . $class);
         }
         $list = [$class => $this->providers[$class]];
     } else {
         $list = $this->providers;
     }
     foreach ($list as $pclass => $provider) {
         if (!$class && $provider['tick'] && $tick > 1 && $tick % $provider['tick'] !== 0) {
             continue;
         }
         $lockName = static::LOCK_PREFIX . $pclass;
         if (!$this->locks->lock($lockName, static::LOCK_TIMEOUT)) {
             $logger->writeln(sprintf('%s is locked, skipping', $pclass));
             continue;
         }
         $provider = $provider['service'];
         /** @var StuffProviderInterface $provider */
         try {
             $this->processProvider($provider, $logger, $command);
         } catch (\Exception $e) {
             $logger->writeln('EXCEPTION: ' . $e->getMessage() . ', skipping');
             // TODO: log exceptions
         }
         $this->locks->unlock($lockName);
     }
 }