Example #1
0
 /**
  * @param TaskHandler $task
  * @param             $period
  *
  * @return TimingsHandler
  */
 public static function getPluginTaskTimings(TaskHandler $task, $period)
 {
     $ftask = $task->getTask();
     if ($ftask instanceof PluginTask and $ftask->getOwner() !== null) {
         $plugin = $ftask->getOwner()->getDescription()->getFullName();
     } elseif ($task->timingName !== null) {
         $plugin = "Scheduler";
     } else {
         $plugin = "Unknown";
     }
     $taskname = $task->getTaskName();
     $name = "Task: " . $plugin . " Runnable: " . $taskname;
     if ($period > 0) {
         $name .= "(interval:" . $period . ")";
     } else {
         $name .= "(Single)";
     }
     if (!isset(self::$pluginTaskTimingMap[$name])) {
         self::$pluginTaskTimingMap[$name] = new TimingsHandler($name, self::$schedulerSyncTimer);
     }
     return self::$pluginTaskTimingMap[$name];
 }
Example #2
0
 private function handle(TaskHandler $handler)
 {
     if ($handler->isDelayed()) {
         $nextRun = $this->currentTick + $handler->getDelay();
     } else {
         $nextRun = $this->currentTick;
     }
     $handler->setNextRun($nextRun);
     $this->tasks[$handler->getTaskId()] = $handler;
     $this->queue->insert($handler, $nextRun);
     return $handler;
 }