PartKeepr\CronLoggerBundle\Services\CronLoggerService::getInactiveCronjobs PHP Method

getInactiveCronjobs() public method

Returns a list of all inactive cronjobs.
public getInactiveCronjobs ( $requiredCronjobs ) : array
return array A string of cronjob names which aren't running
    public function getInactiveCronjobs($requiredCronjobs)
    {
        $dql = "SELECT c.cronjob FROM PartKeepr\\CronLoggerBundle\\Entity\\CronLogger c WHERE c.cronjob = :cronjob";
        $dql .= ' AND c.lastRunDate > :date';
        $query = $this->entityManager->createQuery($dql);
        $date = new \DateTime();
        $date->sub(new \DateInterval('P1D'));
        $query->setParameter('date', $date);
        $failedCronjobs = [];
        foreach ($requiredCronjobs as $cronjob) {
            $query->setParameter('cronjob', $cronjob);
            try {
                $query->getSingleResult();
            } catch (\Exception $e) {
                $failedCronjobs[] = $cronjob;
            }
        }
        return $failedCronjobs;
    }

Usage Example

Example #1
0
 /**
  * Returns the database schema status.
  *
  * This method is usuall called once the user logs in, and alerts him if the schema is not up-to-date.
  *
  * Returns either status incomplete if the schema is not up-to-date, or complete if everything is OK.
  */
 public function getSystemStatus()
 {
     if ($this->container->getParameter("partkeepr.cronjob_check")) {
         $inactiveCronjobs = $this->cronLoggerService->getInactiveCronjobs($this->container->getParameter("partkeepr.required_cronjobs"));
     } else {
         // Skip cronjob tests
         $inactiveCronjobs = array();
     }
     return array("inactiveCronjobCount" => count($inactiveCronjobs), "inactiveCronjobs" => $inactiveCronjobs, "schemaStatus" => $this->getSchemaStatus());
 }
All Usage Examples Of PartKeepr\CronLoggerBundle\Services\CronLoggerService::getInactiveCronjobs