Files
FHC-Core/application/controllers/jobs/LongRunTaskExecJob.php
T
2026-06-19 13:54:38 +02:00

57 lines
1.4 KiB
PHP

<?php
if (!defined("BASEPATH")) exit("No direct script access allowed");
/**
* - This controller acts as interface of the LongRunTaskLib that contains
* all the needed functionalities to operate with the Long Run Task system
* that is built on top of the Jobs Queue System
* - This is a Job Queue Worker that gets scheduled LRTs from the queue and executes them
* - Once all the LRTs have been started checks if there are LRTs that are running for too long and kills them
*/
class LongRunTaskExecJob extends JQW_Controller
{
/**
* Constructor
*/
public function __construct()
{
parent::__construct();
// Changes the needed configs for LogLib
$this->LogLibJob->setConfigs(
array(
'dbExecuteUser' => get_class($this),
'requestId' => 'LRT'
)
);
// Loads LongRunTaskLib library
$this->load->library('LongRunTaskLib');
}
/**
*
*/
public function execEmAll()
{
$this->logInfo('Execute long run tasks started');
// Get all the LRTs that is possible to execute now
$lrtsResult = $this->longruntasklib->getLRTs();
if (isError($lrtsResult)) return $lrtsResult;
// For each LRT
foreach (getData($lrtsResult) as $lrt)
{
// Execute the task
$execResult = $this->longruntasklib->executeLrt($lrt);
// If an error occurred log it and continue with the next one
if (isError($execResult)) $this->logError(getError($execResult));
}
$this->logInfo('Execute long run tasks ended');
}
}