public function process(Tracker $tracker = null) { $tracker = $tracker ?: new Tracker(); if (!$tracker->shouldRecordStatistics()) { return $tracker; } $request = new RequestSet(); $request->rememberEnvironment(); $loops = 0; try { while ($queue = $this->queueManager->lockNext()) { if ($loops > $this->numMaxBatchesToProcess) { Common::printDebug('This worker processed ' . $loops . ' times, stopping now.'); break; } else { $loops++; } $queuedRequestSets = $queue->getRequestSetsToProcess(); if (!empty($queuedRequestSets)) { $requestSetsToRetry = $this->processRequestSets($tracker, $queuedRequestSets); $this->processRequestSets($tracker, $requestSetsToRetry); $queue->markRequestSetsAsProcessed(); // TODO if markR..() fails, we would process them again later } $this->queueManager->unlock(); } } catch (Exception $e) { Common::printDebug('Failed to process a request set: ' . $e->getMessage()); $this->queueManager->unlock(); $request->restoreEnvironment(); throw $e; } $request->restoreEnvironment(); return $tracker; }
private function buildRequestSetWithIdSite($numRequests, $additionalParams = array()) { $req = new RequestSet(); $requests = array(); for ($index = 1; $index <= $numRequests; $index++) { $requests[] = array_merge(array('idsite' => 1, 'cip' => '192.168.33.11', 'token_auth' => Fixture::getTokenAuth()), $additionalParams); } $req->setRequests($requests); $req->rememberEnvironment(); return $req; }
private function buildRequestSetWithIdSite($numRequests, $idSite = null) { $req = new RequestSet(); $requests = array(); for ($index = 1; $index <= $numRequests; $index++) { $requests[] = array('idsite' => $idSite ?: $index); } $req->setRequests($requests); $req->rememberEnvironment(); return $req; }