node.jsスクリプトを実行するcronジョブがあります。
flockを使用してファイルをロックし、cronジョブが重複しないようにします。
ファイルロックを行うための良いモジュールはありますか?
または、子プロセスでそれを呼び出す必要がありますか?
または、ファイルロックを行うべきではありませんか?
申し訳ありませんが、私はこれに不慣れで、ファイルロックがノードのような非同期環境に適しているかどうかわかりません。ありがとう
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」などに多くの依存関係を追加する必要がなくなります。
パッケージflock
内の関数を参照してください: https ://github.com/baudehlo/node-fs-extfs-ext