2012-07-18 113 views
0

我现在正在编写一个node.js套接字应用程序。重新安排node.js任务

因为它涉及一些CPU密集型任务,所以对于多连接任务来说这将是相当麻烦的。

这里的问题是什么: 让一个任务是CPU密集型任务,它是由连接A. 让任务B调用是非常轻便的任务,它是由所有其他连接调用,让说,> 10k连接。

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

  • 任务A
  • 任务A
  • 任务A
  • 任务A
  • ....(也许10000任务A倍)
  • 任务B

任务B在任务A任务中不能中断。因此,最有可能的是,其他用户无法对此Node.js服务器执行任何操作。

除了线程/集群,是否有任何方法来重新安排这样执行的任务,使任务A具有最低优先级?

  • 任务A
  • 任务A
  • 任务B
  • 任务A
  • 任务A
  • 任务A
  • 任务A
  • 任务B
  • 任务A
  • ....

谢谢!

回答

0

有一些可能性:

  • 当用户A来了,你刚才注意到你需要运行A,然后你写的这是由一个cronjob称为文件的NodeJS,使所有任务A.
  • 您可以使任务A异步。像这个例子:Fibonacci async
+0

即使我把它们放在cronjob中,它们也会同时排队。问题仍然会发生。 – 2012-07-19 03:08:25

+0

如果TaskA未被Cronjob调用,则用户仍然可以访问您的服务器。这将是两个不同的过程。 – Charles 2012-07-19 07:27:37