mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-22 06:29:27 +00:00
57 lines
1.4 KiB
PHP
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');
|
|
}
|
|
}
|
|
|