Exemple #1
0
 public static function checkAlive()
 {
     foreach (eqLogic::byTimeout(1, true) as $eqLogic) {
         $sendReport = false;
         $cmds = $eqLogic->getCmd();
         foreach ($cmds as $cmd) {
             if ($cmd->getEventOnly() == 1) {
                 $sendReport = true;
             }
         }
         $logicalId = 'noMessage' . $eqLogic->getId();
         if ($sendReport) {
             $noReponseTimeLimit = $eqLogic->getTimeout();
             if (count(message::byPluginLogicalId('core', $logicalId)) == 0) {
                 if ($eqLogic->getStatus('lastCommunication', date('Y-m-d H:i:s')) < date('Y-m-d H:i:s', strtotime('-' . $noReponseTimeLimit . ' minutes' . date('Y-m-d H:i:s')))) {
                     $message = __('Attention', __FILE__) . ' ' . $eqLogic->getHumanName();
                     $message .= __(' n\'a pas envoyé de message depuis plus de ', __FILE__) . $noReponseTimeLimit . __(' min (vérifier les piles)', __FILE__);
                     message::add('core', $message, '', $logicalId);
                     foreach ($cmds as $cmd) {
                         if ($cmd->getEventOnly() == 1) {
                             $cmd->event('error::timeout');
                         }
                     }
                 }
             } else {
                 if ($eqLogic->getStatus('lastCommunication', date('Y-m-d H:i:s')) > date('Y-m-d H:i:s', strtotime('-' . $noReponseTimeLimit . ' minutes' . date('Y-m-d H:i:s')))) {
                     foreach (message::byPluginLogicalId('core', $logicalId) as $message) {
                         $message->remove();
                     }
                 }
             }
         }
     }
 }