我有运行node.js脚本的cron作业。
想要使用flock锁定文件以确保我的cron作业不是 重叠。
任何用于执行文件锁定的好模块?
或者我应该在子进程中调用它?
或者我不应该做任何文件锁定?
抱歉,我是新手,不确定文件锁定是否适合异步 像节点一样env。感谢
答案 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'等上添加很多依赖项。
有更多信息答案 1 :(得分:2)
请参阅flock
包中的fs-ext
功能:https://github.com/baudehlo/node-fs-ext