11

node.jsスクリプトを実行するcronジョブがあります。

flockを使用してファイルをロックし、cronジョブが重複しないようにします。

ファイルロックを行うための良いモジュールはありますか?

または、子プロセスでそれを呼び出す必要がありますか?

または、ファイルロックを行うべきではありませんか?

申し訳ありませんが、私はこれに不慣れで、ファイルロックがノードのような非同期環境に適しているかどうかわかりません。ありがとう

4

2 に答える 2

7

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

これにより、ロックファイル/ var / lock/myscriptのロックが取得されます。可能であれば、残りの行でコマンドを実行してから、ロックを解除します。そうでない場合(別のジョブが実行されているため)、失敗します。

これにより、「fs-ext」などに多くの依存関係を追加する必要がなくなります。

詳細については、http://linux.die.net/man/1/flockをご覧ください。

于 2012-11-02T17:27:53.870 に答える
4

パッケージflock内の関数を参照してください: https ://github.com/baudehlo/node-fs-extfs-ext

于 2012-10-21T10:54:41.700 に答える