X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=framework%2Fmain%2Fclasses%2Fhandler%2Ftasks%2Fclass_TaskHandler.php;h=f2a63cfe955735bc6f6d46bcc6d9e877ee3dedb6;hb=2218902056efcf9a2c66fe7c24995e066bd7cd11;hp=8ef6ffda24aeff1ba076333e2ec698ea7879aabe;hpb=78c80d535ab3e108f8c89f2aae9ebe02270e4d63;p=core.git diff --git a/framework/main/classes/handler/tasks/class_TaskHandler.php b/framework/main/classes/handler/tasks/class_TaskHandler.php index 8ef6ffda..f2a63cfe 100644 --- a/framework/main/classes/handler/tasks/class_TaskHandler.php +++ b/framework/main/classes/handler/tasks/class_TaskHandler.php @@ -4,11 +4,13 @@ namespace Org\Mxchange\CoreFramework\Handler\Task; // Import framework stuff use Org\Mxchange\CoreFramework\Bootstrap\FrameworkBootstrap; -use Org\Mxchange\CoreFramework\Factory\ObjectFactory; +use Org\Mxchange\CoreFramework\Factory\Object\ObjectFactory; use Org\Mxchange\CoreFramework\Handler\BaseHandler; -use Org\Mxchange\CoreFramework\Lists\Listable; use Org\Mxchange\CoreFramework\Registry\Registerable; use Org\Mxchange\CoreFramework\Task\Taskable; +use Org\Mxchange\CoreFramework\Traits\Iterator\IteratorTrait; +use Org\Mxchange\CoreFramework\Traits\Lists\ListableTrait; +use Org\Mxchange\CoreFramework\Traits\Visitor\VisitorTrait; use Org\Mxchange\CoreFramework\Visitor\Visitable; /** @@ -34,6 +36,11 @@ use Org\Mxchange\CoreFramework\Visitor\Visitable; * along with this program. If not, see . */ class TaskHandler extends BaseHandler implements Registerable, HandleableTask { + // Load traits + use IteratorTrait; + use ListableTrait; + use VisitorTrait; + // Exception constants const EXCEPTION_TASK_IS_INVALID = 0xb00; @@ -98,7 +105,7 @@ class TaskHandler extends BaseHandler implements Registerable, HandleableTask { if (!$this->getListInstance()->getIterator()->valid()) { // Not valid! throw new InvalidTaskException($this, self::EXCEPTION_TASK_IS_INVALID); - } // END - if + } // Get current task $currentTask = $this->getListInstance()->getIterator()->current(); @@ -113,7 +120,7 @@ class TaskHandler extends BaseHandler implements Registerable, HandleableTask { // Skip this silently //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('TASK-HANDLER: Task ' . $currentTask['id'] . ' not started: diff=' . $diff . ',task_startup_delay=' . $currentTask['task_startup_delay']); return; - } // END - if + } // Launch the task and mark it as updated $currentTask['task_started'] = true; @@ -121,7 +128,7 @@ class TaskHandler extends BaseHandler implements Registerable, HandleableTask { // Debug message self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('TASK-HANDLER: Task ' . $currentTask['id'] . ' started with startup_delay=' . $currentTask['task_startup_delay'] . 'ms'); - } // END - if + } // Get time difference from interval delay $diff = ($this->getMilliTime() - $currentTask['task_last_activity']) * 1000; @@ -135,11 +142,11 @@ class TaskHandler extends BaseHandler implements Registerable, HandleableTask { if ($updateTask === true) { // Update the task before leaving $this->updateTask($currentTask); - } // END - if + } // Skip this silently return; - } // END - if + } // Set last activity $currentTask['task_last_activity'] = $this->getMilliTime(); @@ -211,8 +218,8 @@ class TaskHandler extends BaseHandler implements Registerable, HandleableTask { // Abort here break; - } // END - if - } // END - foreach + } + } // Return found name return $taskName; @@ -222,10 +229,10 @@ class TaskHandler extends BaseHandler implements Registerable, HandleableTask { * Registers a task with a task handler. * * @param $taskName A task name to register the task on - * @param $taskInstance The instance that should be registered as a task + * @param $taskInstance An instance of a Taskable class * @return void */ - public function registerTask ($taskName, Visitable $taskInstance) { + public function registerTask (string $taskName, Taskable $taskInstance) { // Get interval delay $intervalDelay = FrameworkBootstrap::getConfigurationInstance()->getConfigEntry('task_' . $taskName . '_interval_delay'); $startupDelay = FrameworkBootstrap::getConfigurationInstance()->getConfigEntry('task_' . $taskName . '_startup_delay'); @@ -236,7 +243,7 @@ class TaskHandler extends BaseHandler implements Registerable, HandleableTask { assert(($taskName === 'idle_loop') || (($taskName != 'idle_loop') && ($startupDelay > 0))); // Create the entry - $taskEntry = array( + $taskEntry = [ // Identifier for the generateHash() method 'id' => $taskName, // Whether the task is started @@ -259,7 +266,7 @@ class TaskHandler extends BaseHandler implements Registerable, HandleableTask { 'task_interval_delay' => $intervalDelay, // How often should this task run? 'task_max_runs' => FrameworkBootstrap::getConfigurationInstance()->getConfigEntry('task_' . $taskName . '_max_runs'), - ); + ]; // Add the entry $this->getListInstance()->addEntry('tasks', $taskEntry); @@ -280,7 +287,7 @@ class TaskHandler extends BaseHandler implements Registerable, HandleableTask { */ public function hasTasksLeft () { // Do we have tasks there? - $tasksLeft = (($this->getListInstance() instanceof Listable) && ($this->getListInstance()->count() > 0)); + $tasksLeft = ($this->getListInstance()->count() > 0); // Return result return $tasksLeft; @@ -299,7 +306,7 @@ class TaskHandler extends BaseHandler implements Registerable, HandleableTask { if (!$this->getListInstance()->getIterator()->valid()) { // Rewind to the beginning for next loop $this->getListInstance()->getIterator()->rewind(); - } // END - if + } // Try to execute the task $this->executeCurrentTask(); @@ -322,7 +329,7 @@ class TaskHandler extends BaseHandler implements Registerable, HandleableTask { self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('TASK-HANDLER: Shutting down all ' . $this->getListInstance()->count() . ' tasks...'); // Remember all tasks that has been shutdown for removal - $tasks = array(); + $tasks = []; // Instance a visitor $this->setVisitorInstance(ObjectFactory::createObjectByConfiguredName('shutdown_task_visitor_class')); @@ -343,7 +350,7 @@ class TaskHandler extends BaseHandler implements Registerable, HandleableTask { // Advance to next one $this->getListInstance()->getIterator()->next(); - } // END - while + } // Debug message self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('TASK-HANDLER: Shutdown of all tasks completed.'); @@ -351,7 +358,7 @@ class TaskHandler extends BaseHandler implements Registerable, HandleableTask { // Remove all tasks foreach ($tasks as $entry) { $this->unregisterTask($entry); - } // END - foreach + } } }