Cronario\Manager::isLimitsExceeded PHP Method

isLimitsExceeded() protected method

protected isLimitsExceeded ( ) : boolean
return boolean
    protected function isLimitsExceeded()
    {
        $events = $this->eventTriggerSet;
        $wc = $this->getWorkerConfig();
        $managerId = $this->getId();
        $logger = $this->getLogger();
        $jobsDoneCount = $events[self::EVENT_SUCCESS] + $events[self::EVENT_FAIL] + $events[self::EVENT_ERROR];
        $lim = $wc[AbstractWorker::CONFIG_P_JOBS_DONE_LIMIT];
        if ($lim > 0 && $lim === $jobsDoneCount) {
            $logger->debug("Manager {$managerId} done limit is equal {$jobsDoneCount}, so finish this manager ...", [__NAMESPACE__]);
            return true;
        }
        $lim = $wc[AbstractWorker::CONFIG_P_JOBS_SUCCESS_LIMIT];
        if ($lim > 0 && $lim === $events[self::EVENT_SUCCESS]) {
            $logger->debug("Manager {$managerId} success limit is equal {$events['isSuccess']}, so finish this manager ...", [__NAMESPACE__]);
            return true;
        }
        $lim = $wc[AbstractWorker::CONFIG_P_JOBS_FAIL_LIMIT];
        if ($lim > 0 && $lim === $events[self::EVENT_FAIL]) {
            $logger->debug("Manager {$managerId} fail limit is equal {$events['isFail']}, so finish this manager ...", [__NAMESPACE__]);
            return true;
        }
        $lim = $wc[AbstractWorker::CONFIG_P_JOBS_RETRY_LIMIT];
        if ($lim > 0 && $lim === $events[self::EVENT_RETRY]) {
            $logger->debug("Manager {$managerId} retry limit is equal {$events['isRetry']}, so finish this manager ...", [__NAMESPACE__]);
            return true;
        }
        $lim = $wc[AbstractWorker::CONFIG_P_JOBS_ERROR_LIMIT];
        if ($lim > 0 && $lim === $events[self::EVENT_ERROR]) {
            $logger->debug("Manager {$managerId} error limit is equal {$events['isError']}, so finish this manager ...", [__NAMESPACE__]);
            return true;
        }
        $lim = $wc[AbstractWorker::CONFIG_P_JOBS_REDIRECT_LIMIT];
        if ($lim > 0 && $lim === $events[self::EVENT_REDIRECT]) {
            $logger->debug("Manager {$managerId} redirect limit is equal {$events['isRedirect']}, so finish this manager ...", [__NAMESPACE__]);
            return true;
        }
        $lim = $wc[AbstractWorker::CONFIG_P_MANAGER_LIFETIME];
        if ($lim > 0 && $this->getStartOn() + $lim <= time()) {
            $logger->debug("Manager {$managerId} lifetime limit {$lim}, so finish this manager ...", [__NAMESPACE__]);
            return true;
        }
        return false;
    }