用node.js调用flock?

Eri*_*ong 7 flock node.js

我有运行node.js脚本的cron作业.

想要使用flock锁定文件以确保我的cron作业不重叠.

用于执行文件锁定的任何好模块?

或者我应该在儿童过程中称之为?

或者我不应该做任何文件锁定?

对不起,我是新手,并不确定文件锁定是否适合async env like node.谢谢

Eva*_* P. 7

如果您只是想防止 cron 作业重叠,请考虑在您的 crontab 中使用“flock”实用程序。

如果您的 cron 线看起来像这样:

*/10 * * * * /usr/bin/node /usr/local/share/myscript
Run Code Online (Sandbox Code Playgroud)

你可以把它改成这样:

*/10 * * * * /usr/bin/flock -n /var/lock/myscript /usr/bin/node /usr/local/share/myscript
Run Code Online (Sandbox Code Playgroud)

这将尝试获取锁定文件 /var/lock/myscript 上的锁定。如果可以,它将在该行的其余部分运行该命令,然后释放锁;如果没有(因为有另一个作业正在运行),它将失败。

这使您不必在“fs-ext”等上添加大量依赖项。

http://linux.die.net/man/1/flock 上有更多信息


ale*_*lex 4

查看包flock中的函数:https: //github.com/baudehlo/node-fs-extfs-ext