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(); } }
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; }
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); }