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;
}