Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何访问worker';什么是排队的请求?_Node.js_Redis_Cluster Computing_Libuv_Request Queueing - Fatal编程技术网

Node.js 如何访问worker';什么是排队的请求?

Node.js 如何访问worker';什么是排队的请求?,node.js,redis,cluster-computing,libuv,request-queueing,Node.js,Redis,Cluster Computing,Libuv,Request Queueing,我正在使用nodejs实现一个web服务器,它必须服务于大量并发请求。当nodejs一个接一个地处理请求时,它会将它们保存在一个内部队列中(我猜是在libuv中) 我还想使用集群模块运行我的web服务器,因此每个工作人员将有一个请求队列 问题: 如果有工作人员死亡,我如何检索其队列 请求 如何将检索到的请求放入其他工作人员的队列 是否有任何API可以访问活动工作人员的请求队列 第三,我希望将排队的请求保留在某个地方,比如Redis(如果可能的话),以便在服务器崩溃、故障甚至硬件重启的情况下,我可

我正在使用nodejs实现一个web服务器,它必须服务于大量并发请求。当nodejs一个接一个地处理请求时,它会将它们保存在一个内部队列中(我猜是在libuv中)

我还想使用
集群
模块运行我的web服务器,因此每个工作人员将有一个请求队列

问题:

  • 如果有工作人员死亡,我如何检索其队列 请求
  • 如何将检索到的请求放入其他工作人员的队列
  • 是否有任何API可以访问活动工作人员的请求队列

  • 第三,我希望将排队的请求保留在某个地方,比如Redis(如果可能的话),以便在服务器崩溃、故障甚至硬件重启的情况下,我可以检索它们。

    正如您在标签中提到的,您已经在使用/想要使用Redis,您可以使用基于Redis的队列管理器为您完成所有工作

    结帐(或它的替代方案)

    bull
    有一个
    queue
    的概念。将作业添加到
    队列
    ,并从不同进程/vm侦听同一队列
    bull
    将只向一个侦听器发送相同的作业,您可以控制每个侦听器同时处理的作业数量(
    并发级别

    此外,如果其中一个作业无法运行(换句话说,队列的侦听器抛出了一个错误),
    bull
    将尝试将相同的作业分配给不同的侦听器