示例#1
0
 /**
  * @param array|TrackingEvent[] $entities
  */
 protected function processTrackingVisits($entities)
 {
     $em = $this->getEntityManager();
     /** @var  TrackingEvent $event */
     foreach ($entities as $event) {
         $this->logger->info('Processing event - ' . $event->getId());
         $trackingVisitEvent = new TrackingVisitEvent();
         $trackingVisitEvent->setParsingCount(0);
         $trackingVisitEvent->setEvent($this->getEventType($event));
         $eventData = $event->getEventData();
         $decodedData = json_decode($eventData->getData(), true);
         $trackingVisit = $this->getTrackingVisit($event, $decodedData);
         $trackingVisitEvent->setVisit($trackingVisit);
         $trackingVisitEvent->setWebEvent($event);
         $trackingVisitEvent->setWebsite($event->getWebsite());
         $targets = $this->trackingIdentification->processEvent($trackingVisitEvent);
         if (!empty($targets)) {
             foreach ($targets as $target) {
                 $trackingVisitEvent->addAssociationTarget($target);
             }
         }
         $event->setParsed(true);
         $em->persist($event);
         $em->persist($trackingVisitEvent);
         $em->persist($trackingVisit);
     }
     $em->flush();
     $this->updateVisits($this->collectedVisits);
     $this->collectedVisits = [];
     $this->eventDictionary = [];
     $em->clear();
     $this->logger->info(sprintf('<comment>Memory usage (currently) %dMB/ (max) %dMB</comment>', round(memory_get_usage(true) / 1024 / 1024), memory_get_peak_usage(true) / 1024 / 1024));
 }
 public function testParsingCount()
 {
     $this->assertEquals(0, $this->trackingVisitEvent->getParsingCount());
     $this->trackingVisitEvent->setParsingCount(1);
     $this->assertEquals(1, $this->trackingVisitEvent->getParsingCount());
 }