Есть ли какая-то cron-подобная библиотека, которая позволила бы мне планировать запуск какой-либо функции в определенное время (например, 15:30, а не через x часов и т.д.)? Если нет такой библиотеки, как это должно быть реализовано? Должен ли я просто установить обратный вызов для вызова каждую секунду и проверить время и начать задание, запланированное на время или что?
Есть ли библиотека планировщика заданий для node.js?
Ответ 1
node-cron делает только то, что я описал
Ответ 2
node-schedule Планировщик заданий типа cron-like и не-cron для Node.
Ответ 3
agenda - это легкий график работы для node. Это поможет вам.
Ответ 4
later.js - довольно хорошая библиотека JavaScript-планировщика. Может работать на Node.js или в веб-браузере.
Ответ 5
Я использую kue: https://github.com/learnboost/kue. Это довольно хорошо.
Официальные функции и мои комментарии:
- отложенные задания.
- Если вы хотите, чтобы задание выполнялось в определенное время, вычислите миллисекунды между этим временем и сейчас. Call job.delay(миллисекунды) (Док говорит минуты, что неверно.) Не забудьте добавить "jobs.promote();" когда вы запускаете задания.
- событие работы и прогресс pubsub.
- Я не понимаю.
- богатый интегрированный интерфейс.
- Очень полезно. Вы можете проверить статус задания (выполненный, запущенный, отложенный) в интегрированном пользовательском интерфейсе и не нужно писать какой-либо код. И вы можете удалить старые записи в пользовательском интерфейсе.
- бесконечная прокрутка
- Иногда не работает. Необходимо обновить.
- Индикатор выполнения пользовательского интерфейса
- Хорошо для трудоемких заданий.
- регистрация конкретных заданий
- Поскольку они задерживают задания, вы должны регистрировать полезную информацию в задании и позже проверять пользовательский интерфейс.
- Работает на Redis
- Очень полезно. При перезапуске вашего приложения node.js все записи о работе все еще существуют, и запланированные задания будут выполняться тоже!
- дополнительные попытки
- Ницца.
- возможности полнотекстового поиска
- Хорошо.
- API RESTful JSON
- Звучит неплохо, но я никогда не использую его.
Edit:
- kue не является библиотекой cron.
- По умолчанию kue не поддерживает задание, которое выполняется многократно (например, каждое воскресенье).
Ответ 6
node-crontab позволяет редактировать задания cron с node.js. Использование этой библиотеки позволит вам запускать программы даже после завершения основного процесса. Отказ от ответственности: я разработчик.
Ответ 7
Вы можете использовать timexe
Он простой в использовании, легкий, не имеет зависимостей, имеет улучшенный синтаксис по сравнению с cron, с разрешением в миллисекундах и работает в браузере.
Установка:
npm install timexe
Использование:
var timexe = require('timexe');
var res = timexe("* * * 15 30", function(){ console.log("It now 3:30 pm"); });
(Я автор)
Ответ 8
Я являюсь 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
Ответ 9
Все эти ответы и никто не указал на самый популярный пакет NPM.. cron
Ответ 10
Оба node-schedule и node-cron мы может использоваться для реализации планировщиков на основе cron.
ПРИМЕЧАНИЕ: для генерации выражений cron вы можете использовать cron_maker
Ответ 11
Это не подходит для всех, но если ваше приложение уже настроено выполнять команды через сокет, вы можете использовать netcat для выдачи команд через собственно cron.
echo 'mycommand' | nc -U /tmp/myapp.sock