Beispiel #1
0
 /**
  * @see parent
  * @param Bronto_Api_Exception $exception
  * @param Bronto_Api $api
  * @param Bronto_Object $request
  * @return boolean
  */
 public function recover(Bronto_Api_Exception $exception, Bronto_Api $api, Bronto_Object $request)
 {
     $canRetry = $exception->getAttempts() < $api->getOptions()->getRetries();
     if ($exception->isRecoverable() && $canRetry) {
         if ($exception->isInvalidSession()) {
             $api->login();
             return true;
         } else {
             if ($exception->isNetworkRelated() && !$request->hasUpdates()) {
                 // Incrementally backoff the read request
                 $backOff = $api->getOptions()->getBackOff() * $exception->getAttempts();
                 sleep($backOff);
                 return true;
             }
         }
     }
     return false;
 }