我有cron作业来运行node.js脚本。用node.js调用群集?
想要使用flock锁定文件以确保我的cron作业不是 重叠。
任何好的模块来做文件锁定?
或者我应该在子进程中调用它?
或者我不应该做任何文件锁定?
对不起,我是新手,不确定文件锁定是否适合异步 env like节点。由于
我有cron作业来运行node.js脚本。用node.js调用群集?
想要使用flock锁定文件以确保我的cron作业不是 重叠。
任何好的模块来做文件锁定?
或者我应该在子进程中调用它?
或者我不应该做任何文件锁定?
对不起,我是新手,不确定文件锁定是否适合异步 env like节点。由于
见fs-ext
包flock
功能:https://github.com/baudehlo/node-fs-ext
如果你只是想保持重叠cron作业,可以考虑在crontab使用“羊群”实用程序。
如果您的cron行看起来是这样的:
*/10 * * * * /usr/bin/node /usr/local/share/myscript
你可以只是把它改成这样:
*/10 * * * * /usr/bin/flock -n /var/lock/myscript /usr/bin/node /usr/local/share/myscript
这将尝试获得锁文件在/ var /锁锁/的MyScript。如果可以,它会在该行的其余部分运行该命令,然后释放该锁;如果没有(因为还有其他工作正在运行),它会失败。
这使您不必添加很多'fs-ext'依赖关系等等。
灵感来自http://mihasya.com/blog/a-quick-note-on-cron-utilities/(信用卡到期) – 2012-11-02 17:37:27
我收到这个错误:'/ bin/sh:-c:line 0:在查找匹配的'''时意外的EOF /bin/sh:-c:第1行:语法错误:文件意外结束 – chovy 2014-11-24 08:37:29
更多信息,我只想用一个孩子的过程,因为羊群是等死了简单...是否文件锁定是良好的异步真的取决于,因为它为大多数事情,怎么你执行。只是要小心不要阻止I/O,你应该没问题。 – srquinn 2012-09-04 18:33:54