Example #1
0
 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);
 }