public function testJobsGlobalAndNameAllBranches() { $conf = array(); $conf['jobs']['*']['*'] = array('do'); $conf['jobs']['jquery.slim_time']['*'] = array('re'); $conf['jobs']['jquery.running_clock']['*'] = array('mi'); $obj = new Config($conf); $obj->setName('jquery.slim_time'); $control = array('do', 're'); $this->assertSame($control, $obj->getJobs()); $obj->setName('jquery.running_clock'); $control = array('do', 'mi'); $this->assertSame($control, $obj->getJobs()); }
public static function run($worker_id, $data) { $jobs = Config::getJobs(); $job =& $jobs[$worker_id]; if ($job === null) { var_dump($worker_id); return false; } $builder = new \DI\ContainerBuilder(); // $builder->setDefinitionCache(new Doctrine\Common\Cache\RedisCache()); $builder->writeProxiesToFile(true, 'tmp/proxies'); // $builder->useAutowiring(false); $builder->useAnnotations(false); $builder->addDefinitions('diconfig.php'); $container = $builder->build(); // $dependencies = &$job['dependencies']; // // if ($dependencies !== null) { // $dependencies_classes = explode(',',$dependencies); // foreach($dependencies_classes as $class) { // $depend_jober = new $class($params); // $params = $depend_jober->run(); // if ($params === false) { // return false; // } // } // } $retries =& $job['retries']; $job_params =& $job['params']; $class =& $job['class']; $exec_count = 0; do { $result = $container->get($class)->run($data, $job_params); $exec_count++; } while ($result === false && $exec_count < $retries); if ($result === false) { $notify = Config::getNotify(); switch ($notify['dispatch_mode']) { case 1: break; case 2: break; } } }
$data->setBranch($_GET['branch']); } elseif (isset($_GET['ref'])) { $data->setBranch($_GET['ref']); } if (isset($_GET['repo'])) { $data->setRepoName($_GET['repo']); } $config = new Config($conf); $config->setBranch($data->getBranch())->setName($data->getRepoName()); $log->append('origin user: '******'repo: ' . $data->getRepoName()); $log->append('branch: ' . $data->getBranch()); $total_added = 0; if (!($jobs = $conf['jobber']->getJobsFileHandle('a'))) { $log->append('Invalid log configuration.'); } elseif ($jobs && ($commands = $config->getJobs())) { foreach ($commands as $cmd) { fwrite($jobs, $cmd . PHP_EOL); $log->header(); ++$total_added; } } fclose($jobs); if ($total_added) { $log->append('jobs added: ' . $total_added); } } else { header("HTTP/1.0 401 Access Denied"); $log->append('401: Access Denied'); } $log->close();