Node.js事件循环因无明显原因而被阻止

Node.js事件循环因无明显原因而被阻止,node.js,event-loop,Node.js,Event Loop,我正在使用来检查事件循环是否被阻止 以下是我正在运行的代码: require('dotenv').config(); var blocked = require('blocked'); var mysql = require('mysql'); var cassandradriver = require('cassandra-driver'); var timeuuid = require('cassandra-driver').types.TimeUuid; var redis = requi

我正在使用来检查事件循环是否被阻止

以下是我正在运行的代码:

require('dotenv').config();
var blocked = require('blocked');
var mysql = require('mysql');
var cassandradriver = require('cassandra-driver');
var timeuuid = require('cassandra-driver').types.TimeUuid;
var redis = require('redis');

var pool = mysql.createPool({
    connectionLimit: 50,
    host: 'localhost',
    user: process.env.username,
    password: process.env.password,
    database: 'database1',
    charset: 'utf8mb4'
});

var authProvider = new cassandradriver.auth.PlainTextAuthProvider('username', 'password');
var cassclient = new cassandradriver.Client({
    contactPoints: ['127.0.0.1:9042'],
    keyspace: 'test',
    authProvider: authProvider
});

var redisdb = redis.createClient({
    password: 'password'
});

var redisdb1 = redis.createClient({
    password: 'password'
});
redisdb1.select(1);

var redisdb2 = redis.createClient({
    password: 'password'
});
redisdb2.select(2);

blocked(function(ms){
  console.log('BLOCKED FOR %sms', ms | 0);
});
如果我让这段代码继续运行,我会在控制台中看到以下内容(每段代码之间大约间隔1分钟):

如果我让它运行,我会每隔1-2秒收到一条消息,说事件循环被阻塞。这一切都在10-25毫秒之间变化

这有什么原因吗?我甚至没有查询MySQL、Cassandra或redis,事件循环被阻塞

如果我误解了被阻止的
程序包,请告诉我


如果有任何帮助,我们将不胜感激。

可以在每个数据库连接上保持传输和解析的消息。我认为在>=10ms时触发回调太低了,不能开始担心阻塞的事件循环。我明白了。对于阻塞的事件循环,您认为合适的毫秒数是多少?50?可能是通过每个数据库连接传输和解析的保留消息。我认为在>=10ms时触发回调太低了,不能开始担心阻塞的事件循环。我明白了。对于阻塞的事件循环,您认为合适的毫秒数是多少?50?
BLOCKED FOR 12ms
BLOCKED FOR 10ms
BLOCKED FOR 18ms
BLOCKED FOR 10ms
BLOCKED FOR 14ms