Javascript 节点js工作人员应增加传出https get请求

Javascript 节点js工作人员应增加传出https get请求,javascript,node.js,redis,Javascript,Node.js,Redis,我的设置是https模块,使用工作线程模块和redis队列作为url列表。单个工作进程每秒最多可以处理800个传出https get请求。我的计划是增加员工数量,增加传出请求。但实际发生的情况是,发出的请求在每个工作人员身上被分开 因此,如果我运行4个worker,每个worker只处理200个传出https get请求。我以为它是800的4倍,所以每秒总共有2400个传出https get请求。Ubuntu打开文件的限制是65000,所以我已经检查过了。Node js脚本在没有nginx或任何

我的设置是https模块,使用
工作线程
模块和redis队列作为url列表。单个工作进程每秒最多可以处理800个传出https get请求。我的计划是增加员工数量,增加传出请求。但实际发生的情况是,发出的请求在每个工作人员身上被分开

因此,如果我运行4个worker,每个worker只处理200个传出https get请求。我以为它是800的4倍,所以每秒总共有2400个传出https get请求。Ubuntu打开文件的限制是65000,所以我已经检查过了。Node js脚本在没有nginx或任何其他负载平衡器的情况下运行

这是我的密码,请告诉我哪里做错了

主文件

const { Worker, isMainThread, parentPort } = require("worker_threads");

function createWorker() {
  var worker = new Worker("./wxr.js", { workerData: {} });
  worker.on("error", (err) => {
    throw err;
  });
  worker.on("message", callback);
  return worker;
}

function callback(data) {}

function spyder(works) {
  var workers = [];

  for (i = 1; i < works + 1; i++) {
    var count = i;
    workers[count] = createWorker();
  }
  var workers = 4;
  spyder(workers);
}
const https = require("https");
const { parentPort, workerData } = require("worker_threads");

const redis = require("redis");
const client = redis.createClient();

var max = 0;

function start() {
  var itv = setInterval(function () {
    max++;
    loop();
    if (max == 100) {
      clearInterval(itv);
    }
  }, 0);
}

start();

function loop() {
  client.lpop(["urls"], function (err, url) {
    if (err) {
      return loop();
    } else if (url == null || url == undefined || url == "" || url == " ") {
      return loop();
    } else {
      easyReq(url, function (error, response, body) {
        return loop();
        // easyReq is just a wrapper for the https module get request function I wrote
      });
    }
  });
}