【发布时间】:2016-02-19 12:12:37
【问题描述】:
我试图通过每 2 秒迭代一次并检索不到 2 秒前创建的所有记录来轮询 MySQL 数据库。
如果我使用setInterval,它似乎偶尔会错过记录。如果我使用setTimeout,它只会获取第一次迭代。
如何更可靠地获取数据以包含所有数据?
io.on('connection', function(socket) {
authorize (socket, function(shop_id) {
setInterval(function() {
var sql = "SELECT * FROM `stats` WHERE `shop_id` = " + connection.escape(shop_id) +
" AND `created` > DATE_SUB(NOW(), INTERVAL 2 SECOND)";
var query = connection.query(sql, function(err, rows, fields) {
if (err == null) {
console.log (rows);
socket.emit('newData', rows);
}
});
}, 2000);
});
});
【问题讨论】:
标签: javascript mysql node.js socket.io