示例#1
0
 /**
  * Decide how to process given operation
  *
  * @param RequestDescriptor $requestDescriptor Operation to decide
  * @param int               $totalItems Total amount of pending requestDescriptors
  *
  * @return int One of LimitationSolverInterface::DECISION_* consts
  */
 private function decide(RequestDescriptor $requestDescriptor, $totalItems)
 {
     $meta = $requestDescriptor->getMetadata();
     if ($requestDescriptor->isRunning()) {
         return LimitationSolverInterface::DECISION_SKIP_CURRENT;
     }
     $isSkippingThis = $meta[RequestExecutorInterface::META_CONNECTION_START_TIME] !== null;
     if ($isSkippingThis) {
         return LimitationSolverInterface::DECISION_SKIP_CURRENT;
     }
     $decision = $this->decider->decide($this->executor, $requestDescriptor->getSocket(), $totalItems);
     if ($decision !== LimitationSolverInterface::DECISION_OK) {
         return $decision;
     }
     return LimitationSolverInterface::DECISION_OK;
 }