/**
  * @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;
     }
 }