最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

Asyncawait 等非阻塞设计在多请求和 CPU 密集情况下是否会阻塞 Node

网站源码admin56浏览0评论

Async/await 等非阻塞设计在多请求和 CPU 密集情况下是否会阻塞 Node

Async/await 等非阻塞设计在多请求和 CPU 密集情况下是否会阻塞 Node

我是Node.js的新手,遇到了为node.js设计非块代码的问题。 首先选择async/await,如下:

router.post('/handleFiles', async(req, res) => {
        // .....
        try {
            let qr1 = "INSERT INTO ........;"
            await new Promise((res, rej) => {
                pool.query(qr1, (err, row) => {
                    if (err) return rej(err);
                    res(row);
                });
            });
            let qr2 = "UPDATE .....;"
            await new Promise((res, rej) => {
                pool.query(qr2, (err, row) => {
                    if (err) return rej(err);
                    res(row);
                });
            });
        } catch (err) {
            console.log(err)
        }
    });

如果 sql 需要 20 秒才能完成它的工作,在这种情况下,节点会阻塞其他节点吗? 要求?似乎还有其他选择做 CPU 限制的工作,比如 child_process,它会 以另一种方式进行,例如

var fork = require('child_process').fork;
app.get('/', function (req, res) {
    var worker = fork('./SQL.js');
    worker.on('message', function (m) {
         res.send(m.result.toString()); 
        })
    });
    
    worker.send({type:'insert', num:--req.query.n||10});
});

node.js 为请求执行繁重的加载工作的好的设计是什么, 并发以满足另一个请求? 非常感谢任何指示,非常感谢

回答如下:
发布评论

评论列表(0)

  1. 暂无评论