/** * Handles the event MonitoringEventsMap::MONITOR_QUERY * * @access public * @return void * @param MonitoringQueryEvent $event */ public function onMonitorQuery(MonitoringQueryEvent $event) { try { $query = $this->gateway->selectQuery()->start(); if ($event->getStart() instanceof DateTime) { $query->andWhereCoverDateAfter($event->getStart()); } if ($event->getEnd() instanceof DateTime) { $query->andWhereCoverDateBefore($event->getEnd()); } if ($event->getLimit() !== null) { $query->limit($event->getLimit()); } if ($event->getOffset() !== null) { $query->offset($event->getOffset()); } if ($event->getIncludeCalculating() === false) { # only going to restrict if to not include calculating $query->andWhereCalculated(); } $query->orderMonitorDate($event->getOrder()); $event->setResult($query->end()->find()); } catch (DBALGatewayException $e) { throw new LaterJobException($e->getMessage(), 0, $e); } }
/** * Log events that occur from queue * * @access public * @param MonitoringQueryEvent $event */ public function logMonitorQueryEvent(MonitoringQueryEvent $event) { $this->log->info('MonitoringEvent:: Monitor running query with params', array('limit' => $event->getLimit(), 'offset' => $event->getOffset(), 'order' => $event->getOrder(), 'start' => $event->getStart(), 'end' => $event->getEnd(), 'include_calculating' => $event->getIncludeCalculating())); }
public function testMonitoringQueryEvent() { $start = new DateTime(); $end = new DateTime(); $result = new \ArrayIterator(array()); $limit = 2; $offset = 0; $order = 'ASC'; $calculating = true; $event = new MonitoringQueryEvent($offset, $limit, $order, $start, $end, $calculating); $event->setResult($result); $this->assertEquals($end, $event->getEnd()); $this->assertEquals($start, $event->getStart()); $this->assertEquals($result, $event->getResult()); $this->assertEquals($limit, $event->getLimit()); $this->assertEquals($offset, $event->getOffset()); $this->assertEquals($order, $event->getOrder()); $this->assertEquals($calculating, $event->getIncludeCalculating()); }