Fixup command argument
This commit is contained in:
parent
38f70cc55a
commit
7637ae1dcc
|
@ -846,7 +846,7 @@ class Worker
|
|||
private static function activeWorkers()
|
||||
{
|
||||
$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_count += (microtime(true) - $stamp);
|
||||
return $count;
|
||||
|
|
|
@ -30,17 +30,4 @@ class Process extends BaseEntity
|
|||
$this->command = $command;
|
||||
$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
|
||||
*
|
||||
* @param int $pid
|
||||
* @param int $pid
|
||||
* @param string $command
|
||||
*
|
||||
* @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([
|
||||
'pid' => $pid,
|
||||
'command' => $command,
|
||||
|
|
|
@ -59,11 +59,16 @@ class Process extends BaseRepository
|
|||
try {
|
||||
$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->insert(static::$table_name, [
|
||||
'pid' => $newProcess->pid,
|
||||
'pid' => $newProcess->pid,
|
||||
'command' => $newProcess->command,
|
||||
'created' => $newProcess->created->format(DateTimeFormat::MYSQL)
|
||||
])) {
|
||||
|
@ -115,4 +120,22 @@ class Process extends BaseRepository
|
|||
$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 a new issue