Exemplo n.º 1
0
 public function onException(RequestSet $requestSet, Exception $e)
 {
     // todo: how do we want to handle DbException or RedisException?
     $this->hasError = true;
     if ($this->count > 0) {
         // remove the first one that failed and all following (standard bulk tracking behavior)
         $insertedRequests = array_slice($requestSet->getRequests(), 0, $this->count);
         $requestSet->setRequests($insertedRequests);
         $this->requestSetsToRetry[] = $requestSet;
     }
 }
Exemplo n.º 2
0
 public function process(Tracker $tracker, RequestSet $requestSet)
 {
     $invalidRequests = 0;
     foreach ($requestSet->getRequests() as $request) {
         try {
             $tracker->trackRequest($request);
         } catch (UnexpectedWebsiteFoundException $ex) {
             $invalidRequests += 1;
         }
     }
     /** @var Response $response */
     $response = $this->getResponse();
     $response->setInvalidCount($invalidRequests);
 }
Exemplo n.º 3
0
 public function test_registerEvents_shouldListenToInitRequestSetEventAndInit_IfBulkRequest()
 {
     $this->injectRawDataToBulk($this->getDummyRequest());
     $requestSet = new RequestSet();
     $requestSet->initRequestsAndTokenAuth();
     $this->assertCount(2, $requestSet->getRequests());
 }
Exemplo n.º 4
0
 public function addRequestSetToQueues(RequestSet $requestSet)
 {
     /** @var RequestSet[][] $queues */
     $queues = array();
     // make sure the requests within a bulk request go into the correct queue
     foreach ($requestSet->getRequests() as $request) {
         $visitorId = $this->getVisitorIdFromRequest($request);
         $queueId = $this->getQueueIdForVisitor($visitorId);
         if (!isset($queues[$queueId])) {
             $queues[$queueId] = array();
         }
         $queues[$queueId][] = $request;
     }
     foreach ($queues as $queueId => $requests) {
         $requestSet->setRequests($requests);
         $queue = $this->createQueue($queueId);
         $queue->addRequestSet($requestSet);
     }
 }
Exemplo n.º 5
0
 public function process(Tracker $tracker, RequestSet $requestSet)
 {
     foreach ($requestSet->getRequests() as $request) {
         $tracker->trackRequest($request);
     }
 }