<?php
/**
- * @copyright Copyright (C) 2010-2021, the Friendica project
+ * @copyright Copyright (C) 2010-2022, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*
private static $last_update;
private static $state;
private static $daemon_mode = null;
- /** @var Worker\Entity\Process */
+ /** @var Process */
private static $process;
/**
}
$stamp = (float)microtime(true);
- $jobs = DBA::count('workerqueue', ["`done` AND `executed` > UTC_TIMESTAMP() - INTERVAL ? MINUTE", $interval]);
+ $jobs = DBA::count('workerqueue', ["`done` AND `executed` > ?", DateTimeFormat::utc('now - ' . $interval . ' minute')]);
self::$db_duration += (microtime(true) - $stamp);
self::$db_duration_stat += (microtime(true) - $stamp);
$jobs_per_minute[$interval] = number_format($jobs / $interval, 0);
DBA::connect();
DI::flushLogger();
- $process = DI::process()->create($pid);
+ $process = DI::process()->create(getmypid(), basename(__FILE__));
$cycles = 0;
- while (!self::IPCJobsExists($pid) && (++$cycles < 100)) {
+ while (!self::IPCJobsExists($process->pid) && (++$cycles < 100)) {
usleep(10000);
}
- Logger::info('Worker spawned', ['pid' => $pid, 'wait_cycles' => $cycles]);
+ Logger::info('Worker spawned', ['pid' => $process->pid, 'wait_cycles' => $cycles]);
self::processQueue($do_cron, $process);
self::unclaimProcess($process);
- self::IPCSetJobState(false, $pid);
+ self::IPCSetJobState(false, $process->pid);
DI::process()->delete($process);
- Logger::info('Worker ended', ['pid' => $pid]);
+ Logger::info('Worker ended', ['pid' => $process->pid]);
exit();
}
* Defers the current worker entry
*
* @return boolean had the entry been deferred?
+ * @throws \Exception
*/
- public static function defer()
+ public static function defer(): bool
{
$queue = DI::app()->getQueue();
return false;
}
- $retrial = $queue['retrial'];
$id = $queue['id'];
$priority = $queue['priority'];