public function run($args)
 {
     $logger = LoggerFactory::getFileLogger('check_processes');
     $logger->log(__METHOD__ . ' Start checkprocesses command.');
     $criteria = new CDbCriteria();
     $criteria->compare('stopped', 0);
     $connections = Listener::model()->findAll($criteria);
     $logger->log(__METHOD__ . ' Found ' . count($connections) . ' connections.');
     foreach ($connections as $connection) {
         $logger->log(__METHOD__ . ' Listener info:', array('process_pid' => $connection->process_pid, 'listener_id' => $connection->listener_id, 'source' => $connection->source));
         if (ProcessPid::isActiveProcess($connection->process_pid) === false) {
             ListenerProcess::addComment($connection->listener_id, 'comment', 'System found out that process is not active any more. Process will be re-run right now.');
             Listener::stopConnection($connection->listener_id, time());
             Listener::runConnection($connection->source, $connection->additional_param, 'auto');
         }
     }
     //        ProcessPid::killProcess(12376);
     $synchronization = new Synchronization();
     if ($synchronization->isProcessed() && ProcessPid::isActiveProcess($synchronization->getTcpServerPid()) === false) {
         $synchronization->startTcpServer();
     }
     if ($synchronization->isProcessed() && ProcessPid::isActiveProcess($synchronization->getTcpClientPid()) === false) {
         $synchronization->startTcpClient();
     }
 }
Example #2
0
 public static function stopConnection($listener_id, $time = 0)
 {
     $time = $time ? $time : time();
     Listener::model()->updateByPk($listener_id, array('stopped' => $time));
     ListenerProcess::addComment($listener_id, 'comment', 'Stop time was saved');
     return true;
 }
Example #3
0
 private function prepareListenerInserts($limit_timestamp)
 {
     $result_sql = "";
     $sql = "SELECT * \n                FROM `" . Listener::model()->tableName() . "`\n                WHERE `created` <= '" . $limit_timestamp . "' \n                LIMIT 0, 50";
     $res = Yii::app()->db->createCommand($sql)->queryAll();
     $total = count($res);
     $ids = array();
     if ($res) {
         $fields = array();
         foreach ($res[0] as $key2 => $value2) {
             $fields[] = $key2;
         }
         $sql_header = "INSERT IGNORE INTO `" . Listener::model()->tableName() . "` (`" . implode('`,`', $fields) . "`) VALUES ";
         $result_sql = $sql_header;
         foreach ($res as $key => $value) {
             $ids[] = $value['listener_id'];
             $result_sql .= "('" . implode("','", $value) . "')";
             if ($key + 1 < $total) {
                 $result_sql .= ", ";
             }
         }
         $this->addBackupLog("Prepared " . count($ids) . " inserts for listener");
     }
     return array($ids, $result_sql);
 }