Fixup command argument
This commit is contained in:
parent
38f70cc55a
commit
7637ae1dcc
|
@ -846,7 +846,7 @@ class Worker
|
||||||
private static function activeWorkers()
|
private static function activeWorkers()
|
||||||
{
|
{
|
||||||
$stamp = (float)microtime(true);
|
$stamp = (float)microtime(true);
|
||||||
$count = DBA::count('process', ['command' => 'Worker.php']);
|
$count = DI::process()->countCommand('Worker.php');
|
||||||
self::$db_duration += (microtime(true) - $stamp);
|
self::$db_duration += (microtime(true) - $stamp);
|
||||||
self::$db_duration_count += (microtime(true) - $stamp);
|
self::$db_duration_count += (microtime(true) - $stamp);
|
||||||
return $count;
|
return $count;
|
||||||
|
|
|
@ -30,17 +30,4 @@ class Process extends BaseEntity
|
||||||
$this->command = $command;
|
$this->command = $command;
|
||||||
$this->created = $created;
|
$this->created = $created;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns a new Process with the given PID
|
|
||||||
*
|
|
||||||
* @param int $pid
|
|
||||||
*
|
|
||||||
* @return $this
|
|
||||||
* @throws \Exception
|
|
||||||
*/
|
|
||||||
public function withPid(int $pid): Process
|
|
||||||
{
|
|
||||||
return new static($pid, $this->command, new DateTime('now', new \DateTimeZone('URC')));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,16 +20,13 @@ class Process extends BaseFactory implements ICanCreateFromTableRow
|
||||||
/**
|
/**
|
||||||
* Creates a new process entry for a given PID
|
* Creates a new process entry for a given PID
|
||||||
*
|
*
|
||||||
* @param int $pid
|
* @param int $pid
|
||||||
|
* @param string $command
|
||||||
*
|
*
|
||||||
* @return Entity\Process
|
* @return Entity\Process
|
||||||
*/
|
*/
|
||||||
public function create(int $pid): Entity\Process
|
public function create(int $pid, string $command): Entity\Process
|
||||||
{
|
{
|
||||||
$trace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 1);
|
|
||||||
|
|
||||||
$command = basename($trace[0]['file']);
|
|
||||||
|
|
||||||
return $this->createFromTableRow([
|
return $this->createFromTableRow([
|
||||||
'pid' => $pid,
|
'pid' => $pid,
|
||||||
'command' => $command,
|
'command' => $command,
|
||||||
|
|
|
@ -59,11 +59,16 @@ class Process extends BaseRepository
|
||||||
try {
|
try {
|
||||||
$this->db->transaction();
|
$this->db->transaction();
|
||||||
|
|
||||||
$newProcess = $this->factory->create($pid);
|
$trace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS);
|
||||||
|
$last = $trace[count($trace) - 1];
|
||||||
|
|
||||||
|
$command = strtolower(basename($last['file']));
|
||||||
|
|
||||||
|
$newProcess = $this->factory->create($pid, $command);
|
||||||
|
|
||||||
if (!$this->db->exists('process', ['pid' => $pid])) {
|
if (!$this->db->exists('process', ['pid' => $pid])) {
|
||||||
if (!$this->db->insert(static::$table_name, [
|
if (!$this->db->insert(static::$table_name, [
|
||||||
'pid' => $newProcess->pid,
|
'pid' => $newProcess->pid,
|
||||||
'command' => $newProcess->command,
|
'command' => $newProcess->command,
|
||||||
'created' => $newProcess->created->format(DateTimeFormat::MYSQL)
|
'created' => $newProcess->created->format(DateTimeFormat::MYSQL)
|
||||||
])) {
|
])) {
|
||||||
|
@ -115,4 +120,22 @@ class Process extends BaseRepository
|
||||||
$this->db->commit();
|
$this->db->commit();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the number of processes with a given command
|
||||||
|
*
|
||||||
|
* @param string $command
|
||||||
|
*
|
||||||
|
* @return int Number of processes
|
||||||
|
*
|
||||||
|
* @throws ProcessPersistenceException
|
||||||
|
*/
|
||||||
|
public function countCommand(string $command): int
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
return $this->count(['command' => strtolower($command)]);
|
||||||
|
} catch (\Exception $exception) {
|
||||||
|
throw new ProcessPersistenceException('Cannot count ', $exception);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user