/** * @param JobInterface $job * @param GearmanJob $gearmanJob * @param Application $root * @return mixed */ public function executeJob(JobInterface $job, GearmanJob $gearmanJob, Application $root) { if ($root->getConfig()->getAutoUpdate() && !$root->isAllowingJob) { $root->restart(); return null; } $root->isAllowingJob = false; if (null !== $root->logger) { $root->logger->info("Executing job {$job->getName()}"); } return $job->execute($gearmanJob); }
if (isset($_SERVER['argv'][1])) { $serialized = $_SERVER['argv'][1]; if (is_file($serialized)) { $application = file_get_contents($serialized); if (!empty($application)) { $application = unserialize($application); } unlink($serialized); } if (!$application instanceof Application) { $application = new Application(); } $process = $application->getProcess(); unlink($process->getPidFile()); $process->release(); $int = 0; while ($int < 1000) { if (file_exists($process->getPidFile())) { usleep(1000); $int++; } elseif (file_exists($process->getLockFile())) { $process->release(); usleep(1000); $int++; } else { $int = 1000; } } $application->setProcess(new Process($application->getConfig(), $application->getLogger())); $application->run(false, true); }