Node.js适用于此处吗?

时间:2015-05-28 15:04:18

标签: javascript node.js

我有四个系统的计划:A,B,C和D.

系统A是一个小型数据库,它将通过HTTP请求接受来自其他三个系统的信息 - 我将尝试在这里实现RESTful服务。其他系统只与系统A通信。

系统B和C都生成.csv文件,我需要监视更改,然后将其内容发送回带有时间戳的系统A.我担心在与A进行通信时,可能会进行文件更改,但系统会忽略它,因为它很忙。

系统D将由客户端在浏览器上运行。

Node.js是否适合在系统B和C上运行?要监视文件更改并向系统A发送一些PUT / POST请求?在极少数情况下,如果系统A上发生了很长时间的更新,那么Node.js是否能够发送另一个请求,如果它在第一个尝试完成时看到文件发生了变化?我从未使用过Node,但我觉得这就是它的优点。我愿意试一试。

1 个答案:

答案 0 :(得分:2)

  

我担心在与A进行通信时,可能会进行文件更改,但系统会忽略它,因为它很忙。

不用担心,因为节点从其核心构建为异步。 It's very tagline is

  

Node.js®是一个基于Chrome JavaScript运行时的平台,可轻松构建快速,可扩展的网络应用程序。 Node.js使用事件驱动的非阻塞I / O模型,使其轻量且高效,非常适合在分布式设备上运行的数据密集型实时应用程序。

您当然可以使用其他语言/平台来解决您的用例,但节点实际上是为这样的东西设计的:)

我玩一款名为Hearthstone的游戏,游戏会生成一个日志文件,说明游戏进行过程中会发生什么。我写了一个log watcher module来监视Hearthstone日志文件。 This code snippet是监视文件的部分。

到目前为止,我的应用程序从未错过日志文件中的任何行,因为每个文件更改事件都会在发生更改时排队。我的应用程序在等待文件更改然后处理它们时不会阻止。相反,节点将事件添加到队列,并在事件循环的每次迭代中检查它们的状态。最终无论如何都会处理所有文件更改事件。