public function process(Tracker $tracker, RequestSet $requestSet) { $requestSet->restoreEnvironment(); $this->count = 0; foreach ($requestSet->getRequests() as $request) { try { $tracker->trackRequest($request); $this->count++; } catch (UnexpectedWebsiteFoundException $ex) { // empty } } $this->requestSetsToRetry[] = $requestSet; }
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; }