Esempio n. 1
0
 public function perform()
 {
     if ($this->canPerform()) {
         SyncManager::syncRelated($this->getCampaign());
         RedisLimit::instance()->del($this->getCampaign());
         $this->addTeasers();
         $this->updateScore();
         $this->addCache();
     }
 }
 public function perform()
 {
     if (!$this->canPerform()) {
         return;
     }
     $offerUser = $this->getOfferUser();
     if ($offerUser->isActive() && !$offerUser->isLimitExceeded(true)) {
         RedisLimit::instance()->del($offerUser);
         RedisOffer::instance()->addOfferUser($offerUser);
     } else {
         RedisOffer::instance()->delOfferUser($offerUser);
     }
 }
Esempio n. 3
0
 /**
  * Инициирует вызов синхронизации уровня на котором исчерпаны лимиты.
  *
  * @return bool
  */
 public function handleLimit()
 {
     if (RedisLimit::instance()->isExists($this)) {
         // ничего не делаем, и детям не даем если лимит уже висит.
         return true;
     }
     if ($this->campaign->handleLimit()) {
         return true;
     } elseif ($this->isLimitExceeded()) {
         RedisLimit::instance()->set($this);
         SyncManager::syncNowAndTomorrow($this);
         return true;
     }
     return false;
 }