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; } }
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); }
public function test_registerEvents_shouldListenToInitRequestSetEventAndInit_IfBulkRequest() { $this->injectRawDataToBulk($this->getDummyRequest()); $requestSet = new RequestSet(); $requestSet->initRequestsAndTokenAuth(); $this->assertCount(2, $requestSet->getRequests()); }
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); } }
public function process(Tracker $tracker, RequestSet $requestSet) { foreach ($requestSet->getRequests() as $request) { $tracker->trackRequest($request); } }