Browse Source

Improve repository usage

pull/10941/head
Philipp 1 month ago
parent
commit
c2b5eb2838
No known key found for this signature in database GPG Key ID: 24A7501396EB5432
  1. 2
      bin/worker.php
  2. 2
      src/Core/Worker.php
  3. 14
      src/Core/Worker/Repository/Process.php

2
bin/worker.php

@ -81,7 +81,7 @@ if ($spawn) {
$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);

2
src/Core/Worker.php

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

14
src/Core/Worker/Repository/Process.php

@ -47,11 +47,12 @@ class Process extends BaseRepository
/**
* Starts and Returns the process 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
{
// Cleanup inactive process
$this->deleteInactive();
@ -59,11 +60,6 @@ class Process extends BaseRepository
try {
$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);
if (!$this->db->exists('process', ['pid' => $pid])) {
@ -114,10 +110,10 @@ class Process extends BaseRepository
}
}
$this->db->close($processes);
$this->db->commit();
} catch (\Exception $exception) {
$this->db->rollback();
throw new ProcessPersistenceException('Cannot delete inactive process', $exception);
} finally {
$this->db->commit();
}
}

Loading…
Cancel
Save