]> git.mxchange.org Git - hub.git/blobdiff - application/hub/main/handler/tasks/class_TaskHandler.php
Self-announcement rewritten to a task
[hub.git] / application / hub / main / handler / tasks / class_TaskHandler.php
index ee751541aaaa874ba42a33499ebcd37fc13027d5..a53edd931ffb72fdad297b0a2d7751a735c8f6df 100644 (file)
@@ -119,7 +119,7 @@ class TaskHandler extends BaseHandler implements Registerable, HandleableTask {
                $diff = ($this->getMilliTime() - $currentTask['task_last_activity']) * 1000;
 
                // Is the interval delay reached?
-               if ($diff < $currentTask['task_interval_delay']) {
+               if ((($diff < $currentTask['task_interval_delay']) && ($currentTask['task_max_runs'] == 0)) || (($currentTask['task_total_runs'] == $currentTask['task_max_runs']) && ($currentTask['task_max_runs'] > 0))) {
                        // Should we update the task from startup?
                        if ($updateTask === true) {
                                // Update the task before leaving
@@ -133,6 +133,9 @@ class TaskHandler extends BaseHandler implements Registerable, HandleableTask {
                // Set last activity
                $currentTask['task_last_activity'] = $this->getMilliTime();
 
+               // Count this run
+               $currentTask['task_total_runs']++;
+
                // Update the task
                $this->updateTask($currentTask);
 
@@ -180,12 +183,16 @@ class TaskHandler extends BaseHandler implements Registerable, HandleableTask {
                        'task_registered'     => $this->getMilliTime(),
                        // Last activity timestamp
                        'task_last_activity'  => 0,
+                       // Total runs of this task
+                       'task_total_runs'     => 0,
                        // Task instance itself
                        'task_instance'       => $taskInstance,
                        // Startup delay in milliseconds
                        'task_startup_delay'  => $this->getConfigInstance()->getConfigEntry('task_' . $taskName . '_startup_delay'),
                        // Interval time (delay) in milliseconds before this task is executed again
                        'task_interval_delay' => $this->getConfigInstance()->getConfigEntry('task_' . $taskName . '_interval_delay'),
+                       // How often should this task run?
+                       'task_max_runs'       => $this->getConfigInstance()->getConfigEntry('task_' . $taskName . '_max_runs'),
                );
 
                // Add the entry
@@ -195,7 +202,8 @@ class TaskHandler extends BaseHandler implements Registerable, HandleableTask {
                $this->debugOutput('TASK-HANDLER: Task ' . $taskName .
                        ' (taskInstance=' . $taskInstance->__toString() . ')' .
                        ', startupDelay=' . $taskEntry['task_startup_delay'] . 'ms' .
-                       ', intervalDelay=' . $taskEntry['task_interval_delay'] . 'ms registered.'
+                       ', intervalDelay=' . $taskEntry['task_interval_delay'] . 'ms' .
+                       ', maxRuns=' . $taskEntry['task_max_runs'] . ' times registered.'
                );
        }