/**
  * Dispatches messages to the job manager.
  *
  * This method is registered as the message handler for messages with name "ConsumeJob".
  *
  * @param DefaultMessage $message
  */
 public function consumeJob(DefaultMessage $message)
 {
     $ticket = $message->ticket;
     $type = $message->type;
     $this->logger->debug('Consume message from bernard backend', ['message' => $message]);
     $this->manager->onMessage(new Message($type, $ticket));
 }
 public function testConsumeJob()
 {
     $type = 'JobType';
     $ticket = 'JobTicket';
     $producerMessage = new DefaultMessage('ConsumeJob', ['type' => $type, 'ticket' => $ticket]);
     $this->manager->expects($this->once())->method('onMessage')->with(new Message($type, $ticket));
     $this->subject->consumeJob($producerMessage);
 }
 /**
  * @param ConsumerEvent $event
  * @throws \InvalidArgumentException If the message body does not contain the expected data
  */
 public function process(ConsumerEvent $event)
 {
     $this->logger->debug('Process event {event} from sonata backend', ['event' => $event]);
     $ticket = $event->getMessage()->getValue('ticket', null);
     if (!is_string($ticket) || strlen((string) $ticket) == 0) {
         throw new \InvalidArgumentException('The message body must be an array containing the key "ticket"');
     }
     $this->manager->onMessage(new Message($event->getMessage()->getType(), $ticket));
 }
 public function testRestartAction()
 {
     $job = new Job();
     $job->setTicket('12345');
     $client = static::createClient();
     $this->mockServices(['abc.job.manager' => $this->manager]);
     $this->manager->expects($this->once())->method('restart')->willThrowException(new TicketNotFoundException($job->getTicket()));
     $client->request('POST', '/api/jobs/12345/restart');
     $this->assertEquals(404, $client->getResponse()->getStatusCode());
 }
Beispiel #5
0
 /**
  * @ParamType("manager", type="@abc.manager")
  * @ReturnType("string")
  *
  * @param ManagerInterface $manager
  * @return null|string
  */
 public function manageJob(ManagerInterface $manager)
 {
     $job = $manager->addJob('log', ['addedJob']);
     return $job->getTicket();
 }
 /**
  * @param ConsumerEvent $event
  * @dataProvider getInvalidEvent
  * @expectedException \InvalidArgumentException
  */
 public function testProcessThrowsInvalidArgumentException(ConsumerEvent $event)
 {
     $this->manager->expects($this->never())->method('onMessage');
     $this->subject->process($event);
 }