Пример #1
0
 /**
  * @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);
 }
Пример #2
0
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);
}