Есть ли Библиотека планировщика заданий для узла.Джей? [закрытый]
есть ли какая-то библиотека cron, которая позволит мне запланировать запуск некоторой функции в определенное время (например, 15:30, а не через x часов и т. д.)? Если нет такой библиотеки, как это должно быть реализовано? Должен ли я просто установить обратный вызов для вызова каждую секунду и проверить время и начать задания, запланированные на это время или что?
11 ответов:
node-cron делает только то, что я описал
node-schedule cron-подобный и не-cron-подобный Планировщик заданий для узла.
повестка дня - Это легкое планирование заданий для узла. Это вам поможет.
позже.js это довольно хорошая библиотека JavaScript "планировщик". Может работать на узле.JS или в веб-браузере.
Я использую kue:https://github.com/learnboost/kue . Это довольно приятно.
официальные функции и мои комментарии:
- отложенная работа.
- если вы хотите, чтобы задание выполнялось в определенное время, вычислите миллисекунды между этим временем и сейчас. Позвонить на работу.задержка (миллисекунды) (док говорит минуты, что неверно.) Не забудьте добавить " работа.promote ();" когда вы вводите задания.
- событие работа и опционально прогресс.
- я этого не понимаю.
- богатый интегрированный интерфейс.
- очень полезно. Вы можете проверить состояние задания (выполнено, запущено, отложено) в интегрированном пользовательском интерфейсе и не нужно писать код. И вы можете удалить старые записи в пользовательском интерфейсе.
- бесконечная прокрутка
- иногда не работает. Надо освежиться.
- индикатор выполнения пользовательского интерфейса
- хорошо для трудоемкая работа.
- ведение журнала конкретных заданий
- поскольку они являются отложенными заданиями, вы должны зарегистрировать полезную информацию в задании и проверить позже через пользовательский интерфейс.
- питание от Redis
- очень полезно. При перезагрузке узла.js app, все записи о заданиях все еще там, и запланированные задания будут выполняться тоже!
- необязательный снова разбирать
- хорошо.
- возможности полнотекстового поиска
- хорошо.
- RESTful JSON API
- звучит хорошо, но я никогда не использую его.
Edit:
- kue - это не cron, как библиотека.
- по умолчанию kue не поддерживает задание, которое выполняется повторно (например, каждое воскресенье).
node-crontab позволяет редактировать системные задания cron из узла.js. Использование этой библиотеки позволит вам запускать программы даже после завершения основного процесса. Отказ от ответственности: я разработчик.
можно использовать timexe
преимущества в том, что его простой в использовании, легкий вес, не имеет зависимостей, имеет улучшенный синтаксис над cron, разрешение в миллисекундах и работает в браузере.
установка:
npm install timexeиспользование:
var timexe = require('timexe'); var res = timexe("* * * 15 30", function(){ console.log("It's now 3:30 pm"); });(Я автор)
Я auhor из node-runnr . Это очень простой подход к созданию работы. Также его очень легко и ясно объявить время и интервал. Например, чтобы выполнить задание через каждые 10 минут 20 секунд,
Runnr.addIntervalJob('10:20', function(){...}, 'myjob')делать работу в 10 утра и 3 вечера ежедневно,
Runnr.addDailyJob(['10:0:0', '15:0:0'], function(){...}, 'myjob')это так просто. Для более подробной информации:https://github.com/Saquib764/node-runnr
и node-schedule и узел-cron мы можем использовать для реализации schedullers на основе cron.
Примечание : для генерации cron выражений, вы можете использовать это cron_maker
Это не подходит для всех, но если ваше приложение уже настроено для приема команд через сокет, вы можете использовать netcat для выдачи команд через cron.
echo 'mycommand' | nc -U /tmp/myapp.sock
Comments