示例#1
0
 public function testWorkerTransitionEvent()
 {
     $mock_transition = $this->getMock('LaterJob\\Model\\Activity\\Transition');
     $mock_worker = $this->getMockBuilder('LaterJob\\Worker')->disableOriginalConstructor()->getMock();
     $event = new WorkerTransitionEvent($mock_worker, $mock_transition);
     $this->assertEquals($mock_worker, $event->getWorker());
     $this->assertEquals($mock_transition, $event->getTransition());
 }
 /**
  *  Save the transition to the database
  *
  *  @access public
  *  @return boolean
  *  @param WorkerTransitionEvent $event
  */
 protected function saveTransition(WorkerTransitionEvent $event)
 {
     try {
         $obj = $event->getTransition();
         $result = $this->gateway->insertQuery()->start()->addColumn('worker_id', $obj->getWorker())->addColumn('state_id', $obj->getState())->addColumn('dte_occured', $obj->getOccured())->addColumn('transition_msg', $obj->getMessage())->addColumn('process_handle', $obj->getProcessHandle())->end()->insert();
         # assign the id to the object
         $obj->setTransitionId($this->gateway->lastInsertId());
         if ($result === false) {
             throw new LaterJobException('Unable to save transition for Worker:: ' . $obj->getWorker() . ' It already exists');
         }
     } catch (DBALGatewayException $e) {
         throw new LaterJobException($e->getMessage(), 0, $e);
     }
 }
 /**
  *  Log events that occur from a worker
  *
  *  @access public
  *  @param WorkerTransitionEvent$event 
  */
 public function logWorkerEvent(WorkerTransitionEvent $event)
 {
     $this->log->info($event->getTransition()->getMessage(), array('worker_id' => $event->getWorker()->getId()));
 }
 /**
  *  Log events that occur from a worker
  *
  *  @access public
  *  @param WorkerTransitionEvent$event 
  */
 public function logWorkerEvent(WorkerTransitionEvent $event)
 {
     $this->output->writeln('<comment>' . $event->getTransition()->getMessage() . '</comment> ' . json_encode(array('worker_id' => $event->getWorker()->getId())));
 }