mysql - 使用 For 循环但始终仅执行最新循环 - node.js net-snmp

标签 mysql node.js snmp net-snmp

我正在使用 Node js 和 net-snmp 模块构建 Linux 服务器监控。这部分是用于检查具有已存储在 mysql 数据库中的 OID 的服务的脚本。我遇到问题,这个脚本总是只执行最新的循环。我不知道为什么。这是我的代码:

connection.query("select * from SERVICE WHERE SERVER_ID = ? order by SERVICE_LIST_ID", [result[i].SERVER_ID], function(err2, services) {
    if (err2) throw(err2); 

    //tapping services
    for(var j in services){
        session.get ([services[j].SERVICE_OID], function (error, varbinds) {
            if (error) {
                console.error (error);
            } else {
            //save services
            console.log(j);
            var post  = {LOG_ID: result_logr.insertId, SERVICE_ID: services[j].SERVICE_ID, SERVICE_STATUS: 1};
            var query = connection.query('INSERT INTO LOG_SERVICE SET ?', post, function(err, result) {
                    if (err) { 
                connection.rollback(function() {
                  throw err;
                });
              }  
              connection.commit(function(err) {
                if (err) { 
                  connection.rollback(function() {
                    throw err;
                  });
                }
                console.log('Transaction Complete.');
                //connection.end();
              });
                });
                console.log(query.sql);
            }

        });
    }
    });

结果显示:

1
INSERT INTO LOG_SERVICE SET `LOG_ID` = 115, `SERVICE_ID` = 2, `SERVICE_STATUS` = 1
1
INSERT INTO LOG_SERVICE SET `LOG_ID` = 115, `SERVICE_ID` = 2, `SERVICE_STATUS` = 1

所以,它只执行j=1。 请帮我。谢谢

最佳答案

可能是异步问题,for会并行执行。

尝试一下:

async = require('async')
async.eachSeries(services, function(elem,callback){
//Your logic here

AFter that 
callback(); //to start the next loop
})

关于mysql - 使用 For 循环但始终仅执行最新循环 - node.js net-snmp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32991613/

相关文章:

mysql - IIf() 内的 IsNull 函数不起作用 - MS Access

node.js - Node.js 中是否有类似延迟监视器 (Q) 的东西?

MySQL 分组查询中相同字段值计数的结果

mysql - 从 MySQL 插入查询中获取新记录的主键 ID?

node.js - NodeJS Bunyan Logstash 日志索引

linux - 将对 SNMP MIB 对象的访问类型更改为读写

network-protocols - 关于 SNMP 的基本问题

c# - 使用 WMI 监视远程计算机上的带宽

php - 安全登录?有任何想法吗?任何方法都会很好

javascript - 如何在 Linux/Mac/Windows 上的 Node/Electron 应用程序中获取浏览器事件选项卡 URL?