private function Timers() { static $StartTime = false; if ($StartTime == false) { $StartTime = time(); } $Events = $GLOBALS['Cron']->Timer($StartTime); $StartTime = time() + 1; // CRON if (is_array($Events)) { foreach ($Events as $Event) { // zde se pousti event $tmp = new Event($Event['file']); $tmp->SetData($Event['data']); $tmp->SetCronTime($Event['time']); $Part = 'n/a'; if (isset($Event['part'])) { $Part = $Event['part']; } if (!$tmp->Execute($Part, $Err)) { // Delete Event if error unset($tmp); } elseif ($tmp->TriggerCount() < 1) { // if There are no triggers, we can delete instace unset($tmp); } else { $EID = $this->GetNewEID(); $this->RunningEvent[$EID] = $tmp; unset($tmp); } } } // Running events timeouts if (count($this->RunningEvent) > 0) { end($this->RunningEvent); do { $EID = Key($this->RunningEvent); $this->RunningEvent[$EID]->Timer($StartTime); // if There are no triggers, we can delete instace if (isset($this->RunningEvent[$EID]) && $this->RunningEvent[$EID]->GetTTL() < $StartTime) { unset($this->RunningEvent[$EID]); } if (isset($this->RunningEvent[$EID]) && $this->RunningEvent[$EID]->TriggerCount() < 1) { unset($this->RunningEvent[$EID]); } $Continue = Prev($this->RunningEvent); } while ($Continue != FALSE); } unset($tmp); unset($Continue); unset($EID); $Events = array(); unset($Events); }