我已经编写了一个递归读取一个目录中的文件,修改它们并将它们写入另一个目录的程序。每次我运行该程序时,都会在几百次迭代后出现恶意程序。我再次运行它,似乎完成了这项任务。nodejs/Mac并打开文件限制
无论是nodejs还是Mac OS X,或者很可能是nodejs-on-Mac-OS-X,似乎都对可同时打开的文件数量有限制。到处搜索,我发现解决方案是使用像ulimit -n 10480
这样的东西,一切都会好的。这是正确的方式吗?本能地,我宁愿不修补我的系统设置,而是修改我的程序以在极限内工作。
观察:早先我曾经使用Perl来完成我上面描述的任务,而且我从来没有遇到过问题。我假设这是因为我正在打开,转换,然后关闭文件,然后移动。在nodejs中,使用async
模式,我无法在继续下一个文件之前关闭文件。如果我在sync
模式下执行任务,它工作正常。