/** * @inheritdoc */ public function execute(array $payload) { /** @var ScraperEntity $entity */ /** @var string $url */ list($entity, $url) = $payload; $scraper = $this->factory->createScraper($entity); $scraper->setAsync(true); try { $scraper->scrape($entity, $url); return true; } catch (RateLimitException $e) { $re = new RescheduleException(); if ($date = $e->getRetryDate()) { $re->setRescheduleDate($date); } throw $re; } catch (CrawlException $e) { $this->logger->error($e->getMessage(), ['url' => $e->getUrl()]); return false; } }
/** * @inheritdoc */ public function execute(array $payload) { /** @var SourceInterface $source */ list($source) = $payload; try { $this->revisitor->revisit($source, true); return true; } catch (RateLimitException $e) { $re = new RescheduleException(); if ($date = $e->getRetryDate()) { $re->setRescheduleDate($date); } throw $re; } catch (CrawlException $e) { $this->logger->error($e->getMessage(), ['url' => $e->getUrl()]); return false; } }