Opps ...
[core.git] / inc / classes / main / handler / tasks / class_TaskHandler.php
index 9fd650a6771462ca86036f0d47ae686419325644..4be13cc3997da9fffb427f76a9b056c866343b35 100644 (file)
@@ -114,8 +114,11 @@ class TaskHandler extends BaseHandler implements Registerable, HandleableTask {
                // Get time difference from interval delay
                $diff = ($this->getMilliTime() - $currentTask['task_last_activity']) * 1000;
 
+               // Debug message
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('TASK-HANDLER[' . __METHOD__ . ':' . __LINE__ . ']: Task ' . $currentTask['id'] . ' diff=' . $diff . ',task_interval_delay=' . $currentTask['task_interval_delay'] . ',task_max_runs=' . $currentTask['task_max_runs'] . ',task_total_runs=' . $currentTask['task_total_runs']);
+
                // Is the interval delay reached?
-               if ((($diff < $currentTask['task_interval_delay']) && ($currentTask['task_max_runs'] == 0)) || (($currentTask['task_total_runs'] == $currentTask['task_max_runs']) && ($currentTask['task_max_runs'] > 0))) {
+               if ((($diff < $currentTask['task_interval_delay']) && ($currentTask['task_max_runs'] == 0)) || (($currentTask['task_max_runs'] > 0) && ($currentTask['task_total_runs'] == $currentTask['task_max_runs']))) {
                        // Should we update the task from startup?
                        if ($updateTask === TRUE) {
                                // Update the task before leaving
@@ -165,13 +168,13 @@ class TaskHandler extends BaseHandler implements Registerable, HandleableTask {
         */
        private function unregisterTask (array $taskData) {
                // Debug output
-               self::createDebugInstance(__CLASS__)->debugOutput('TASK-HANDLER[' . __METHOD__ . ':' . __LINE__ . ']: Removing task ' . $taskData['id'] . ' from queue - CALLED!');
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('TASK-HANDLER[' . __METHOD__ . ':' . __LINE__ . ']: Removing task ' . $taskData['id'] . ' from queue - CALLED!');
 
                // Remove the entry
                $this->getListInstance()->removeEntry('tasks', $taskData);
 
                // Debug output
-               self::createDebugInstance(__CLASS__)->debugOutput('TASK-HANDLER[' . __METHOD__ . ':' . __LINE__ . ']: Removing task ' . $taskData['id'] . ' from queue - EXIT!');
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('TASK-HANDLER[' . __METHOD__ . ':' . __LINE__ . ']: Removing task ' . $taskData['id'] . ' from queue - EXIT!');
         }
 
        /**
@@ -211,6 +214,15 @@ class TaskHandler extends BaseHandler implements Registerable, HandleableTask {
         * @return      void
         */
        public function registerTask ($taskName, Visitable $taskInstance) {
+               // Get interval delay
+               $intervalDelay = $this->getConfigInstance()->getConfigEntry('task_' . $taskName . '_interval_delay');
+               $startupDelay  = $this->getConfigInstance()->getConfigEntry('task_' . $taskName . '_startup_delay');
+
+               // If the task is 'idle_loop', a deplay of zero seconds is fine
+               assert($intervalDelay >= 0);
+               assert(($taskName != 'idle_loop') && ($intervalDelay > 0));
+               assert(($taskName != 'idle_loop') && ($startupDelay > 0));
+
                // Create the entry
                $taskEntry = array(
                        // Identifier for the generateHash() method
@@ -230,9 +242,9 @@ class TaskHandler extends BaseHandler implements Registerable, HandleableTask {
                        // Task instance itself
                        'task_instance'       => $taskInstance,
                        // Startup delay in milliseconds
-                       'task_startup_delay'  => $this->getConfigInstance()->getConfigEntry('task_' . $taskName . '_startup_delay'),
+                       'task_startup_delay'  => $startupDelay,
                        // Interval time (delay) in milliseconds before this task is executed again
-                       'task_interval_delay' => $this->getConfigInstance()->getConfigEntry('task_' . $taskName . '_interval_delay'),
+                       'task_interval_delay' => $intervalDelay,
                        // How often should this task run?
                        'task_max_runs'       => $this->getConfigInstance()->getConfigEntry('task_' . $taskName . '_max_runs'),
                );