/**
  * {@inheritdoc}
  */
 public function logException($message, $e)
 {
     $qb = $this->em->createQueryBuilder();
     $qb->select('COUNT(ml.id)')->from('Heri\\Bundle\\JobQueueBundle\\Entity\\MessageLog', 'ml')->innerjoin('ml.messageId', 'm')->where($qb->expr()->eq('m.id', ':id'))->setParameter('id', $message->id);
     $count = $qb->getQuery()->getSingleScalarResult();
     if ($count == 0) {
         $this->em->createQuery('UPDATE Heri\\Bundle\\JobQueueBundle\\Entity\\Message m ' . 'SET m.ended = 0, m.failed = 1, m.priority = 0 ' . 'WHERE m.id = ?1')->setParameter(1, $message->id)->execute();
         $messageObject = $this->em->getRepository('Heri\\Bundle\\JobQueueBundle\\Entity\\Message')->find($message->id);
         $log = new \Heri\Bundle\JobQueueBundle\Entity\MessageLog();
         $log->setMessageId($messageObject);
         $log->setDateLog(new \DateTime('now'));
         $log->setLog($e->getMessage());
         $this->em->persist($log);
         $this->em->flush();
     }
 }
Пример #2
0
 /**
  * {@inheritdoc}
  */
 public function logException($message, $e)
 {
     $query = $this->em->createQuery('SELECT COUNT(ml.id) FROM Heri\\Bundle\\JobQueueBundle\\Entity\\MessageLog ml ' . 'WHERE ml.id = ?1')->setParameter(1, $message->id);
     $count = $query->getSingleScalarResult();
     if ($count == 0) {
         $this->em->createQuery('UPDATE Heri\\Bundle\\JobQueueBundle\\Entity\\Message m ' . 'SET m.ended = 0, m.failed = 1, m.priority = 0 ' . 'WHERE m.id = ?1')->setParameter(1, $message->id)->execute();
         $log = new \Heri\Bundle\JobQueueBundle\Entity\MessageLog();
         $log->setMessageId($message->id);
         $log->setDateLog(new \DateTime('now'));
         $log->setLog($e->getMessage());
         $this->em->persist($log);
         $this->em->flush();
     }
 }
    /**
     * {@inheritdoc}
     */
    public function logException($message, $e)
    {
        $sql = <<<EOL
            UPDATE Heri\\Bundle\\JobQueueBundle\\Entity\\Message m
            SET
                m.ended = 0,
                m.failed = 1,
                m.numRetries = m.numRetries + ?1,
                m.priority = 0
            WHERE m.id = ?2
EOL;
        $this->em->createQuery($sql)->setParameter(1, $message->failed ? 1 : 0)->setParameter(2, $message->id)->execute();
        $messageObject = $this->em->getRepository('Heri\\Bundle\\JobQueueBundle\\Entity\\Message')->find($message->id);
        $log = new \Heri\Bundle\JobQueueBundle\Entity\MessageLog();
        $log->setMessageId($messageObject);
        $log->setDateLog(new \DateTime('now'));
        $log->setLog($e->getMessage());
        $this->em->persist($log);
        $this->em->flush();
    }