public function testCrawlFailAction()
 {
     $website = new WebsiteMessage();
     $website->setUrl('http://www.google.nonexstingltd');
     $sayHelloProducer = $this->get('old_sound_rabbit_mq.crawl_website_producer');
     $sayHelloProducer->publish($website);
     return $this->render('MessagingBundle:Default:index.html.twig');
 }
 /**
  *  Main execute method
  *  Execute actions for a given message
  *
  *  @param (AMQPMessage) $msg       An instance of `PhpAmqpLib\Message\AMQPMessage` with the $msg->body being the data sent over RabbitMQ.
  *
  *  @return (boolean) Execution status (true if everything's of, false if message should be re-queued)
  */
 public function execute(AMQPMessage $msg)
 {
     $website = new WebsiteMessage($msg->body);
     $logger = $this->container->get('logger');
     $logger->debug("[website] Crawling: " . $website->getUrl() . "…");
     try {
         $startTime = microtime(true);
         $res = $this->client->get($website->getUrl());
         $endTime = microtime(true);
         $website->setHttpCode($res->getStatusCode());
         $website->setResponseTime($endTime - $startTime);
         $website->setDatetime(new \Datetime('now'));
         if ($res->getStatusCode() == 200) {
             $website->setStatus(Website::STATUS_OK);
             $website->setGenerator($this->getResponseGenerator($res));
             $this->produceNotification($website);
             return true;
         } else {
             $website->setStatus(Website::STATUS_FAIL);
             $website->setFailMessage($res->getReasonPhrase());
             $this->produceNotification($website);
             return true;
         }
     } catch (RequestException $e) {
         $website->setStatus(Website::STATUS_FAIL);
         $website->setFailMessage($e->getMessage());
         $this->produceNotification($website);
         return true;
     }
 }
 public function findOneWithMessage(WebsiteMessage $message)
 {
     if ($message->getId() != '') {
         return $this->findOneById($message->getId());
     }
     if ($message->getUrl() != '') {
         return $this->findOneByUrl($message->getUrl());
     }
     if ($message->getName() != '') {
         return $this->findOneByName($message->getName());
     }
     return null;
 }
示例#4
0
 /**
  * Get message from entity.
  *
  * @return WebsiteMessage
  */
 public function getMessage()
 {
     $message = new WebsiteMessage();
     $message->setId($this->getId());
     $message->setUrl($this->getUrl());
     $message->setName($this->getName());
     $message->setStatus($this->getStatus());
     return $message;
 }