我有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