用node.js调用flock?

时间:2011-04-12 09:26:49

标签: node.js flock

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

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

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

或者我应该在子进程中调用它?

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

抱歉,我是新手,不确定文件锁定是否适合异步 像节点一样env。感谢

2 个答案:

答案 0 :(得分:4)

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

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

*/10 * * * * /usr/bin/node /usr/local/share/myscript

您可以将其更改为:

*/10 * * * * /usr/bin/flock -n /var/lock/myscript /usr/bin/node /usr/local/share/myscript

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

这使您不必在'fs-ext'等上添加很多依赖项。

http://linux.die.net/man/1/flock

有更多信息

答案 1 :(得分:2)

请参阅flock包中的fs-ext功能:https://github.com/baudehlo/node-fs-ext