多次调用数据库无法正常工作

菲利普坦克

我的mysql有两个问题:

1 - 与 mysql 连接 2 小时后,它停止响应 2 - 多个呼叫无法正常工作

如果您查看 createandcall 函数,它将进入 for 循环以调用服务器。第一个调用正常工作,但所有其他调用都没有按预期工作,当查看日志时,我看到如下内容:

RackChecker 连接数据库!连接关闭 RackChecker 与数据库连接!连接关闭 RackChecker 与数据库连接!连接关闭 RackChecker 与数据库连接!连接关闭 RackChecker 与数据库连接!连接关闭 RackChecker 与数据库连接!连接关闭 RackChecker 与数据库连接!连接关闭 RackChecker 与数据库连接!连接关闭 RackChecker 与数据库连接!连接关闭

然后所有交互的查询结果,看起来像函数openconnection()closeconnection()并且正在为所有交互执行,而第一个交互尚未完成处理。

主要.js:

function createandcall(rackname, racknameid, stb) {
    $('#maintable').append('<table class="table"><tbody><tr style="text-align:center"><td><h2>' + rackname + '</h2><table class="table"><tbody style="text-align:left"><tr id="STBL"></tr><tr id="STBL1"></tr><tr id="STBL2"></tr><tr id="STBL3"></tr></tbody></table></td></tr></tbody></table>');
    for (i = 1; i < stb + 1; i++) {
        createtable(i);
        callstb(rackname, racknameid, i);
    }
    return;
}

function callstb(rackname, racknameid, i) {

    $.ajax({
        type: "GET",
        dataType: 'text',
        url: "http://localhost:3000/index/" + rackname + ' ' + racknameid + ' ' + i,
        success: function (data) {
            response = '\#stb' + i;
            idtd = '\#tdstb' + i;
            $(response).html(data.replace(/\[32m/gi, '').replace(/\[0\;33m/gi, '').replace(/\[0m/gi, '').replace(/\[33m/gi, '').replace(/\[37m/gi, '').replace(/\[31m/gi, ''));
            pre = $(response).html().toString();

        },
        error: function (error) {
            $("#error").html('Error trying to get the STBs report');
            $("#error").show();
        }
    })
}

服务器.js:

app.get('/index/*', (req, res) => {
    parsedparam = req.params[0].split(" ")
    rackname = parsedparam[0]
    racknameid = parsedparam[1]
    stb = parseInt(parsedparam[2])
    verifystbs(rackname, racknameid, stb, res);
});

function openconnection() {
    con.connect(() => { console.log("RackChecker connected with database!") });
}

function closeconnection() {
    con.end(() => { console.log("Connection Closed") });
}

function verifystbs(rackname, racknameid, stb, res) {
    openconnection();
    con.query("SELECT (SELECT UCASE(name) FROM models WHERE s.model = id) as Model,\
        (SELECT UCASE(name) FROM manufacturers WHERE s.manufacturer = id) as Branch,\
        (SELECT UCASE(name) FROM racks WHERE s.rack = id) as Rack,\
        s.name as Stb,\
        x.pr as Jira, \
        x.reason as Reason,\
        x.requestor AS Stress_Request,\
        x.version as Version\
        FROM \
        stbs s \
        LEFT JOIN \
        stressrun x \
        ON (s.active = 1 && s.rack = (SELECT id FROM racks WHERE name = '"+ racknameid + "')) \
        WHERE x.id = (SELECT max(id) FROM stressrun y WHERE y.stb_id = s.id) and s.name like ('STB_%"+ stb + "')\
        and x.reason in ('failed','other','new build') ORDER BY s.name;", (err, result) => {
        console.log(result)
        if (!Array.isArray(result) || !result.length) {
            callnewstb = shell.exec('./shellscript/callnewstb.sh ' + rackname + ' ' + stb, { async: true });
            callnewstb.stdout.on('data', (data) => {
                res.send(data);
            });
        }
        else {
            for (i = 0; i < result.length; i++) {
                parsestbnumber = result[i].Stb.split("_");
                stbnumber = parseInt(parsestbnumber[1]);
                stbnumber = stbnumber * 1;
                if (stb == stbnumber) {
                    res.send("Stress Test is not running on <b>" + result[i].Stb + "</b><br>Reason: <b>" + result[i].Reason + "</b><br>Jira Ticket: <b><a href='https://link.jira.com/browse/" + result[i].Jira + "'>" + result[i].Jira + "</a></b><br>Build Version: <b>" + result[i].Version)
                    break
                }
                else {
                    callnewstb = shell.exec('./shellscript/callnewstb.sh ' + rackname + ' ' + stb, { async: true });
                    callnewstb.stdout.on('data', (data) => {
                        res.send(data);
                    })
                }
            }
        }
    });
    closeconnection();
}
菲利普坦克

我找到了一个答案,我改变了我用来连接到数据库的方法我开始使用 createPool() 而不是 createConnection()

const mysql = require('mysql');

var pool = mysql.createPool({
  connectionLimit: 16,
  host: "localhost",
  user: "user",
  password: "password",
  database: "test"
});


function verifystbs(rackname, racknameid, stb, res) {
  pool.getConnection((err, connection) => {
    if (err) { console.log(err) }
    connection.query("select * from table", result)
    connection.release();
   });
   });
   

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SQLite数据库无法正常工作

来自分类Dev

从数据库获取无法正常工作?

来自分类Dev

从数据库获取数据无法正常工作

来自分类Dev

创建角色和数据库PostgreSQL无法正常工作

来自分类Dev

从数据库中查询到的codeigniter无法正常工作

来自分类Dev

从mysql迁移后,postgres数据库无法正常工作

来自分类Dev

将Django与旧版数据库集成无法正常工作

来自分类Dev

sqlite数据库无法正常工作错误638

来自分类Dev

用PHP插入数据库无法正常工作

来自分类Dev

使用PHP插入数据库无法正常工作

来自分类Dev

Android数据库简单程序无法正常工作

来自分类Dev

图片上传到mysql数据库无法正常工作

来自分类Dev

使用数据库生成的导航栏无法正常工作

来自分类Dev

PHP / MySQL插入数据库无法正常工作

来自分类Dev

PHP类,扩展数据库无法正常工作

来自分类Dev

magento数据库sql无法正常工作

来自分类Dev

VB.Net更新数据库无法正常工作

来自分类Dev

android数据库更新无法正常工作

来自分类Dev

使用 javafx 插入数据库无法正常工作

来自分类Dev

PHP数据库连接-多次调用

来自分类Dev

在数据库表中使用mysqli插入数据无法正常工作?连接是否正常

来自分类Dev

Cake迁移种子无法正常工作(无法推断数据库类型)

来自分类Dev

使用codeigniter框架将数据插入数据库无法正常工作

来自分类Dev

使用C#将数据插入Access数据库无法正常工作

来自分类Dev

当我尝试连接数据库时,我的灯项目无法正常工作

来自分类Dev

更新到SpringBoot 2.4.0后内存数据库中的H2无法正常工作

来自分类Dev

实体框架6,数据库优先。更新模型无法正常工作

来自分类Dev

我的MySQL数据库中的正则表达式无法正常工作

来自分类Dev

阿拉伯数据库无法正常工作,laravel

Related 相关文章

  1. 1

    SQLite数据库无法正常工作

  2. 2

    从数据库获取无法正常工作?

  3. 3

    从数据库获取数据无法正常工作

  4. 4

    创建角色和数据库PostgreSQL无法正常工作

  5. 5

    从数据库中查询到的codeigniter无法正常工作

  6. 6

    从mysql迁移后,postgres数据库无法正常工作

  7. 7

    将Django与旧版数据库集成无法正常工作

  8. 8

    sqlite数据库无法正常工作错误638

  9. 9

    用PHP插入数据库无法正常工作

  10. 10

    使用PHP插入数据库无法正常工作

  11. 11

    Android数据库简单程序无法正常工作

  12. 12

    图片上传到mysql数据库无法正常工作

  13. 13

    使用数据库生成的导航栏无法正常工作

  14. 14

    PHP / MySQL插入数据库无法正常工作

  15. 15

    PHP类,扩展数据库无法正常工作

  16. 16

    magento数据库sql无法正常工作

  17. 17

    VB.Net更新数据库无法正常工作

  18. 18

    android数据库更新无法正常工作

  19. 19

    使用 javafx 插入数据库无法正常工作

  20. 20

    PHP数据库连接-多次调用

  21. 21

    在数据库表中使用mysqli插入数据无法正常工作?连接是否正常

  22. 22

    Cake迁移种子无法正常工作(无法推断数据库类型)

  23. 23

    使用codeigniter框架将数据插入数据库无法正常工作

  24. 24

    使用C#将数据插入Access数据库无法正常工作

  25. 25

    当我尝试连接数据库时,我的灯项目无法正常工作

  26. 26

    更新到SpringBoot 2.4.0后内存数据库中的H2无法正常工作

  27. 27

    实体框架6,数据库优先。更新模型无法正常工作

  28. 28

    我的MySQL数据库中的正则表达式无法正常工作

  29. 29

    阿拉伯数据库无法正常工作,laravel

热门标签

归档