0

我现在正在编写一个 node.js 套接字应用程序。

由于它涉及一些 CPU 密集型任务,对于多连接任务来说会相当麻烦。

这就是问题所在:假设任务 A 是 CPU 密集型任务,它由连接 A 调用。假设任务 B 是非常轻量级的任务,它由所有其他连接调用,比如说 > 10k 连接。

当连接 A “几乎同时”调用大量任务 A 时(这在我的设计中是正常的,因为需要处理每个数据包)。任务将按如下方式安排:

  • 任务 A
  • 任务 A
  • 任务 A
  • 任务 A
  • ....(可能是任务 A 的 10000 次)
  • 任务 B

任务 B 不能在任务 A 任务中间中断。所以很可能,其他用户不能在这个 node.js 服务器上做任何事情。

除了线程/集群,有没有办法重新安排这样执行的任务,使任务 A 的优先级最低?

  • 任务 A
  • 任务 A
  • 任务 B
  • 任务 A
  • 任务 A
  • 任务 A
  • 任务 A
  • 任务 B
  • 任务 A
  • ……

谢谢!

4

1 回答 1

0

有一些可能性:

  • 当用户A来的时候,你是否注意到你需要运行A。然后你编写一个由cronjob调用的nodeJS文件并制作所有任务A。
  • 您可以使 Task A 异步。像这个例子:斐波那契异步
于 2012-07-18T07:11:02.157 回答