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); } }
/** * Инициирует вызов синхронизации уровня на котором исчерпаны лимиты. * * @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; }