From 5a726aa3491ac7cd8760d55bf23c2c54dd67a571 Mon Sep 17 00:00:00 2001 From: 沈斌 <bluelazysb@hotmail.com> Date: Mon, 08 Jan 2018 22:33:20 +0800 Subject: [PATCH] updated --- create_data.js | 76 ++++++++++++++++++++----------------- 1 files changed, 41 insertions(+), 35 deletions(-) diff --git a/create_data.js b/create_data.js index bf83636..c81f9ac 100644 --- a/create_data.js +++ b/create_data.js @@ -2,7 +2,7 @@ var moment = require('moment'); var config = require('./config'); -var mysqlClient = mysql.createConnection(config.mysql); +var pool = mysql.createPool(config.mysql); var start_date = moment().add(-1, 'days').format('YYYY-MM-DD');//'2017-11-11'; var end_date = moment().add(-1, 'days').format('YYYY-MM-DD');//'2018-01-07'; @@ -18,46 +18,52 @@ var start = moment(date_hour).add(k, 'minutes').format("YYYY-MM-DD HH:mm:00"); var end = moment(date_hour).add(k+1, 'minutes').format("YYYY-MM-DD HH:mm:00"); - fetchDeviceMinutelyData(start, end); + fetchDeviceMinutelyData(start, end, days, (i+1)*(j+1)*(k+1)); } } } -mysqlClient.end(); - -function fetchDeviceMinutelyData(start, end) { - var devices = {}; - var sql = "SELECT mac, mac_key, avg(mac_value) as avg_val, min(mac_value) as min_val, max(mac_value) as max_val FROM history WHERE time >= '" + start + "' AND time < '" + end + "' GROUP BY mac, mac_key ORDER BY mac"; - //console.log(sql); - mysqlClient.query(sql, function (error, results, fields) { - if (error) { - console.log("error1: " + error.message); - return; - } - - //console.log(start + " : " + end); - - results.forEach(function(data) { - var mac = data.mac; - var key = data.mac_key; - var val = data.avg_val; - if(devices[mac] == null) { - devices[mac] = { - mac: mac, - time: moment(start).format('YYYY-MM-DD HH:mm:00') - }; +function fetchDeviceMinutelyData(start, end, d, t) { + pool.getConnection(function (err, conn) { + var devices = {}; + var sql = "SELECT mac, mac_key, avg(mac_value) as avg_val, min(mac_value) as min_val, max(mac_value) as max_val FROM history WHERE time >= '" + start + "' AND time < '" + end + "' GROUP BY mac, mac_key ORDER BY mac"; + //console.log(sql); + conn.query(sql, function (error, results, fields) { + if (error) { + console.log("error1: " + error.message); + return; } - devices[mac][key] = [val.toFixed(3), data.min_val, data.max_val] + + //console.log(start + " : " + end); + + results.forEach(function(data) { + var mac = data.mac; + var key = data.mac_key; + var val = data.avg_val; + if(devices[mac] == null) { + devices[mac] = { + mac: mac, + time: moment(start).format('YYYY-MM-DD HH:mm:00') + }; + } + devices[mac][key] = [val.toFixed(3), data.min_val, data.max_val] + }); + + var device_data = []; + for(var mac in devices) { + device_data.push(devices[mac]); + } + + if(device_data.length > 0) { + insertDeviceData(device_data); + } + + conn.release(); + + if(t == (d+1)*24*60) { + pool.end(); + } }); - - var device_data = []; - for(var mac in devices) { - device_data.push(devices[mac]); - } - - if(device_data.length > 0) { - insertDeviceData(device_data); - } }); } -- Gitblit v1.8.0