我正在使用以下过程在nodejs上运行的专用服务器上执行cpu密集型任务。想知道这是否是正确的方法(步骤和方法作为一个整体) -
(注意 - 完成cpu密集型任务的时间并不重要,只要它刚完成)
问题1。如果由于WS发送的请求,CPS有一个庞大的队列会继续增长,会发生什么?
问题2。这是一项做CPU密集型工作的坏方法吗?什么是更好的解决方案?
答案 0 :(得分:0)
<强>正确答案为即可。如果CPS继续排队请求,在某些时候(在非常大的请求队列中),heap size的应用程序将超过操作系统限制 - &gt; CPS将被关闭,失去所有排队的请求。可以把这个场景想象成对CPS的DDOS攻击!
<强> ANSWER2 即可。如果预计队列变大,建议使用任务队列(如kue)/消息队列,如Redis Simple Messaging Queue (rsmq)。
我在这个时间点使用简单的HTTP,因为我的负载不是很大。我可以稍后更新此答案(当我的服务器负载增加时)。
(某些来源来自Stackoverflow上的this question)