本文整理汇总了PHP中Process::status方法的典型用法代码示例。如果您正苦于以下问题:PHP Process::status方法的具体用法?PHP Process::status怎么用?PHP Process::status使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Process
的用法示例。
在下文中一共展示了Process::status方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: foreach
function check_job_servers()
{
//loop schemas
foreach (Doo::db()->find('Schemata') as $s) {
$schema_id = $s->id;
//enabled config with PID
foreach (Doo::db()->find('GearmanJobServers', array('where' => 'local = 1 AND enabled = 1 AND schema_id = ' . $schema_id)) as $js) {
if (!empty($js->pid)) {
//init
$p = new Process();
$p->setPid($js->pid);
//check status
if ($p->status()) {
continue;
}
}
//let start
$js->pid = $this->start_local_job_server($js->id, $js->port, $s->id);
$js->update();
}
//disabled config
foreach (Doo::db()->find('GearmanJobServers', array('where' => 'local = 1 AND enabled = 0 AND pid IS NOT NULL AND schema_id = ' . $schema_id)) as $js) {
//stop
$p = new Process();
$p->setPid($js->pid);
$p->stop();
$js->pid = null;
$js->update(array('setnulls' => true));
}
}
}
示例2: ensureRunning
public static function ensureRunning($cmd, $pidfile, $restart = false)
{
$pidfile = '/var/run/' . $pidfile;
// get pid from pidfile, protecting against invalid data
$p1 = null;
if (file_exists($pidfile) && is_readable($pidfile)) {
$pid = substr(file_get_contents($pidfile), 0, 64);
$p1 = new Process();
$p1->setPid($pid);
}
if ($restart && $p1) {
$p1->stop();
}
// check whether process with this pid is running
if (!$p1 || !$p1->status()) {
// check that we can write the pidfile, to avoid spawning endless processes
if (file_put_contents($pidfile, 'test')) {
$p2 = new Process($cmd);
file_put_contents($pidfile, $p2->getPid());
}
return true;
}
return false;
}
示例3: crawler_status
public function crawler_status($crawler_id)
{
$this->layout = "ajax";
$process = new Process();
$process->setPid($crawler_id);
$this->set("running", $process->status());
}
示例4: foreach
function check_workers()
{
//loop schemas
foreach (Doo::db()->find('Schemata') as $s) {
$schema_id = $s->id;
$funcs = Doo::db()->fetchAll("SELECT a.id, a.schema_id, b.function_name, a.worker_count, a.enabled\r\n\t\t\t\tFROM gearman_functions a\r\n\t\t\t\tLEFT JOIN gearman_function_names b\r\n\t\t\t\tON a.function_name_id = b.id\r\n\t\t\t\tWHERE enabled = 1\r\n\t\t\t\tAND schema_id = {$schema_id}");
//read worker config
$worker_functions = array();
foreach ($funcs as $f) {
$worker_functions[$f["function_name"]] = $f["worker_count"];
}
//Loop enabled config
foreach ($worker_functions as $function => $worker_count) {
//find current workers for the function
$runningWorkers = Doo::db()->find('GearmanWorkers', array('where' => "function_name = '{$function}' AND schema_id = {$schema_id}"));
//scan workers to make sure they are still running
foreach ($runningWorkers as $worker) {
//init
$p = new Process();
$p->setPid($worker->pid);
//check status
if (!$p->status()) {
//crashed! Lets re init
$gw = new GearmanWorkers();
$gw->pid = $this->start_worker($function, $schema_id);
$gw->function_name = $function;
$gw->schema_id = $schema_id;
$gw->insert();
//remove crashed pid
$worker->delete();
}
}
//calc delta workers
$delta = $worker_count - count($runningWorkers);
//add missing workers
if ($delta > 0) {
for ($i = 0; $i < $delta; $i++) {
//run process
$sw = new GearmanWorkers();
$sw->pid = $this->start_worker($function, $schema_id);
$sw->function_name = $function;
$sw->schema_id = $schema_id;
$sw->insert();
}
}
//remove extra workers
if ($delta < 0) {
//find current workers for the function
$runningWorkers = Doo::db()->find('GearmanWorkers', array('where' => "function_name = '{$function}' AND schema_id = {$schema_id}"));
for ($i = 0; $i < abs($delta); $i++) {
//kill process
$worker = $runningWorkers[$i];
$p = new Process();
$p->setPid($worker->pid);
$p->stop();
$worker->delete();
}
}
}
//disabled config
$funcs = Doo::db()->fetchAll("SELECT a.id, a.schema_id, b.function_name, a.worker_count, a.enabled\r\n\t\t\t\tFROM gearman_functions a\r\n\t\t\t\tLEFT JOIN gearman_function_names b\r\n\t\t\t\tON a.function_name_id = b.id\r\n\t\t\t\tWHERE enabled = 0\r\n\t\t\t\tAND schema_id = {$schema_id}");
foreach ($funcs as $f) {
$function = $f["function_name"];
//find current workers for the function
$disabledWorkers = Doo::db()->find('GearmanWorkers', array('where' => "function_name = '{$function}' AND schema_id = {$schema_id}"));
//scan workers and kill to disable
foreach ($disabledWorkers as $worker) {
//init
$p = new Process();
$p->setPid($worker->pid);
$p->stop();
$worker->delete();
}
}
}
}
示例5: stop
function stop()
{
//stop function
global $conf;
global $db;
$result = $db->query("SELECT count(*) AS C FROM pid");
$row = $result->fetchArray();
// output data of each row
$result = $db->query("SELECT * FROM pid LIMIT 1");
$row = $result->fetchArray();
$process = new Process();
$process->setPid($row["pid"]);
if (!$process->status()) {
$sql = "DELETE FROM pid";
$result = $db->query($sql);
$return_array["info"] = "process already dead";
} else {
$response_array["pid"] = $process->getPid();
$process->stop();
$sql = "DELETE FROM pid";
$result = $db->query($sql);
$return_array["info"] = "process stopped";
}
sleep(1);
cleanpl();
$return_array["status"] = 0;
return $return_array;
}