0

我正在通过节点脚本运行一些文件管理任务。包含 node-windows 包以允许我将此脚本作为 Windows 服务运行。今天早上,当我意识到服务启动了同一脚本的重复实例时,我遇到了一个严重错误。这非常糟糕,它破坏了 24 小时的数据,因为两个脚本都试图处理相同的数据集并最终粉碎它们。我从未见过 Windows 服务允许这样的事情。有没有其他人遇到过这个问题或知道是什么原因造成的?

4

1 回答 1

0

请参阅我对 node-windows 实例的评论。

真正的问题是数据损坏,与节点窗口没有任何关系。节点脚本应该对此具有容错性。更具体地说,它应该实现文件锁定,这是防止这种确切情况的标准做法。

有几个文件锁定模块可用。lockfile是 npm 使用的。还有另一个名为proper-lockfile 的项目,它以稍微不同(对 Windows 更友好)的方式解决了这个问题。

于 2017-03-03T15:57:06.920 回答