вызывать стаю с помощью node.js? - PullRequest
7 голосов
/ 12 апреля 2011

У меня есть задание cron для запуска сценариев node.js.

Хотите использовать flock для блокировки файла, чтобы убедиться, что мои задания cron не перекрываются.

Любой хороший модуль для выполнения файлаблокировка?

Или я должен назвать это в дочернем процессе?

Или я не должен делать какую-либо блокировку файла?

Извините, я новичок в этом и не уверен, блокировка файлахорошо для асинхронного окружения, как узел.Спасибо

Ответы [ 2 ]

4 голосов
/ 02 ноября 2012

Если вы просто пытаетесь предотвратить перекрытие заданий cron, попробуйте вместо этого использовать утилиту "flock" в вашем 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 / lock / myscript. Если это возможно, он выполнит команду в оставшейся части строки, а затем снимет блокировку; если нет (потому что запущено другое задание), оно не будет выполнено.

Это избавляет вас от необходимости добавлять множество зависимостей в 'fs-ext' и т. Д.

Больше информации на http://linux.die.net/man/1/flock

2 голосов
/ 21 октября 2012

См. flock функция в fs-ext упаковке: https://github.com/baudehlo/node-fs-ext

...