【发布时间】:2017-12-17 02:04:12
【问题描述】:
我在 AngularJS 中显示图表时遇到问题。我的后端是用 nodeJS 编写的,我有一个聚合器作为缓冲区,其中包含 netdata 接收的数据,我在其中插入要插入 BD 的数据。但与此同时,我正在使用 cron 执行此操作。
对于一个新的客户端请求,我需要另一个 cron 来为同一个 BD 编写并使用同一个聚合器,但结构不同,我没有使用 netdata,我做了所有更改,但问题是插入的时间戳不同.
例如,
第一个 Cron:2017-07-12 15:31:28+01 第二个 Cron:2017-07-12 15:16:21.335547+01(插入时我使用 CURRENT_TIMESTAMP)
也许这在 AngularJS 中发生了冲突……有人想在我的 bd 上以“2017-07-12 15:31:28+01”的格式插入吗?我的时间戳字段是带有时区的时间戳。
如果我评论第二个 cron 其他图表显示正常
聚合数据库:
AgregateDatabase.prototype.addRow = function (dbConnection, data) {
createLog('info', __dirname, __filename.slice(__dirname.length + 1, -3), data.device_id, 'addRow','inicio');
createLog('debug', __dirname, __filename.slice(__dirname.length + 1, -3), data.device_id, 'addRow','type', data.type);
return new Promise(function (resolve, reject) {
pg.connect(dbConnection, function (err, client, done) {
if (err) {
createLog('error', __dirname, __filename.slice(__dirname.length + 1, -3), data.device_id, 'addRow', err);
reject(err);
return
}
if(data.type==='probing_live' || data.type==='probing_repeated' || data.type==='probing_passBy'){
createLog('debug', __dirname, __filename.slice(__dirname.length + 1, -3), data.device_id, 'addRow','data', data);
client.query("INSERT INTO default_dataset (id, timestamp, agregation_period, medium, maximum, minimum, sum, type, device_id, network_id, organization_id, labels) \
VALUES ($1, CURRENT_TIMESTAMP, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11)",
[data.id, data.agregation_period, data.medium, data.maximum, data.minimum, data.sum, data.type, data.device_id, data.network_id, data.organization_id, data.labels],
function (err, result) {
done();
if (err) {
console.log("probing addRow errrrrrrro");
createLog('error', __dirname, __filename.slice(__dirname.length + 1, -3), data.device_id, 'probing addRow error', err);
reject(err);
} else {
console.log("probing addRow row added ", JSON.stringify(result));
createLog('info', __dirname, __filename.slice(__dirname.length + 1, -3), data.device_id, 'probing addRow row added');
resolve(result.rows);
}
});
} else {
client.query("INSERT INTO default_dataset (id, timestamp, agregation_period, medium, maximum, minimum, sum, type, device_id, network_id, organization_id, labels) \
VALUES ($1, to_timestamp($2), $3, $4, $5, $6, $7, $8, $9, $10, $11, $12)",
[data.id, data.timestamp, data.agregation_period, data.medium, data.maximum, data.minimum, data.sum, data.type, data.device_id, data.network_id, data.organization_id, data.labels],
function (err, result) {
done();
if (err) {
console.log("probing addRow errrrrrrro");
createLog('error', __dirname, __filename.slice(__dirname.length + 1, -3), data.device_id, 'probing addRow error', err);
reject(err);
} else {
console.log("probing addRow row added ", JSON.stringify(result));
createLog('info', __dirname, __filename.slice(__dirname.length + 1, -3), data.device_id, 'probing addRow row added');
resolve(result.rows);
}
});
}
});
});
}
【问题讨论】:
-
什么是BD?你的问题到底出在哪里?显示日期或将其插入 BD?你有任何错误吗?参考this link如何提出一个好问题
-
我插入数据正常,但为“probing_”类型保存的时间戳与我之前所说的不同,这可能是所有图表停止显示正常的原因...我不知道
标签: javascript angularjs node.js postgresql