Improve repository usage

This commit is contained in:
Philipp 2021-11-01 13:54:18 +01:00
parent 7c6554451e
commit c2b5eb2838
No known key found for this signature in database
GPG key ID: 24A7501396EB5432
3 changed files with 8 additions and 12 deletions

View file

@ -81,7 +81,7 @@ if ($spawn) {
$run_cron = !array_key_exists('n', $options) && !array_key_exists('no_cron', $options); $run_cron = !array_key_exists('n', $options) && !array_key_exists('no_cron', $options);
$process = DI::process()->create(getmypid()); $process = DI::process()->create(getmypid(), basename(__FILE__));
Worker::processQueue($run_cron, $process); Worker::processQueue($run_cron, $process);

View file

@ -1183,7 +1183,7 @@ class Worker
DBA::connect(); DBA::connect();
DI::flushLogger(); DI::flushLogger();
$process = DI::process()->create(getmypid()); $process = DI::process()->create(getmypid(), basename(__FILE__));
$cycles = 0; $cycles = 0;
while (!self::IPCJobsExists($process->pid) && (++$cycles < 100)) { while (!self::IPCJobsExists($process->pid) && (++$cycles < 100)) {

View file

@ -47,11 +47,12 @@ class Process extends BaseRepository
/** /**
* Starts and Returns the process for a given PID * Starts and Returns the process 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
{ {
// Cleanup inactive process // Cleanup inactive process
$this->deleteInactive(); $this->deleteInactive();
@ -59,11 +60,6 @@ class Process extends BaseRepository
try { try {
$this->db->transaction(); $this->db->transaction();
$trace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS);
$last = $trace[count($trace) - 1];
$command = strtolower(basename($last['file']));
$newProcess = $this->factory->create($pid, $command); $newProcess = $this->factory->create($pid, $command);
if (!$this->db->exists('process', ['pid' => $pid])) { if (!$this->db->exists('process', ['pid' => $pid])) {
@ -114,10 +110,10 @@ class Process extends BaseRepository
} }
} }
$this->db->close($processes); $this->db->close($processes);
} catch (\Exception $exception) {
throw new ProcessPersistenceException('Cannot delete inactive process', $exception);
} finally {
$this->db->commit(); $this->db->commit();
} catch (\Exception $exception) {
$this->db->rollback();
throw new ProcessPersistenceException('Cannot delete inactive process', $exception);
} }
} }