public function view() { $queueRuntimeDB = new QueueRuntimeModelDB(); //普通条件,检查GET参数 $fieldArr = $queueRuntimeDB->getFields(); $where = array('b.group_id=?'); $whereArr = array($_SESSION['group']); foreach ($fieldArr as $v) { if ($_GET[$v] !== null) { $where[] = "a.`{$v}` = ?"; $whereArr[] = $_GET[$v]; } } $whereStr = count($where) > 0 ? implode(" AND ", $where) : '1=1'; if ($_GET['_search_field'] != '' && in_array($_GET['_search_field'], $fieldArr) && $_GET['_search_keyword'] != '') { $whereStr = $whereStr == '1=1' ? $_GET['_search_field'] . " LIKE ?" : $whereStr . " AND " . $_GET['_search_field'] . " LIKE ?"; $whereArr[] = "%" . $_GET['_search_keyword'] . "%"; } //排序条件 $orderStr = 'a.`key` DESC'; if (!empty($_POST['order'])) { foreach ($_POST['order'] as $k => $v) { $orderArr[] = "a.`{$k}` {$v}"; } $orderStr = implode(',', $orderArr); } //查询操作 $sql = "SELECT a.* FROM `" . $queueRuntimeDB->getTableName() . "` a INNER JOIN `project` b ON a.project_id=b.id WHERE {$whereStr} ORDER BY {$orderStr}"; $data = $queueRuntimeDB->getData($sql, $whereArr, 200); $pageStr = $queueRuntimeDB->getPageStr(); $pageJump = $queueRuntimeDB->getPageJump(); //读取外键数据 $projectFkArr = QueueRuntimeModel::getProject(); $this->setView('projectFkArr', $projectFkArr); //模版显示 $this->setView('pageStr', $pageStr); $this->setView('pageJump', $pageJump); $this->setView('data', $data); $this->display('QueueRuntime.html'); }
} $argv = array_merge(array($scriptName), $argv); define('PATH_ROOT', rtrim(dirname(__FILE__), '/') . '/../'); require PATH_ROOT . 'config/SysInitConfig.php'; //用户配置 require PATH_ROOT . 'libs/DaggerSysInitConfig.php'; //系统配置 require PATH_LIBS . 'basics.php'; //__autoload函数 require PATH_ROOT . 'config/DBConfig.php'; //载入数据库配置 //==========取代global.php功能==========// $time = time(); $db = new QueueRuntimeModelDB(); $sql = "SELECT * FROM " . $db->getTableName() . " WHERE `begin_time` < ?"; $data = $db->getData($sql, array($time - 60 * 50)); if (!empty($data)) { $ndb = new ProjectModelDB(); $queueConfigDB = new QueueConfigModelDB(); foreach ($data as $v) { $row = $ndb->getRow("SELECT `id`,`key`,`name` FROM `" . $ndb->getTableName() . "` WHERE `id` = ?", array($v['project_id'])); $task = trim(array_shift(explode(' ', $v['task']))); $runTimeConfig = $queueConfigDB->getFirst("SELECT `time` FROM `" . $queueConfigDB->getTableName() . "` WHERE `project_id` = ? AND `task` = ?", array($v['project_id'], $task)); if (empty($runTimeConfig)) { $runTimeConfig = 50; } $runTime = intval(($time - $v['begin_time']) / 60); if ($runTime >= $runTimeConfig) { $message = "[{$row['name']}]的队列[{$v['task']}]于[" . date("Y-m-d H:i:s", $v['begin_time']) . "]在[{$v['ip']}]开始运行,目前已超过{$runTime}分钟!"; // 多个监控点,同一次错误只提醒一次 $mc = new MyMemcache();