Есть ли библиотека планировщика заданий для node.js?

Есть ли какая-то cron-подобная библиотека, которая позволила бы мне планировать запуск какой-либо функции в определенное время (например, 15:30, а не через x часов и т.д.)? Если нет такой библиотеки, как это должно быть реализовано? Должен ли я просто установить обратный вызов для вызова каждую секунду и проверить время и начать задание, запланированное на время или что?

Ответ 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

Ответ 10

Оба node-schedule и node-cron мы может использоваться для реализации планировщиков на основе cron.

ПРИМЕЧАНИЕ: для генерации выражений cron вы можете использовать cron_maker

Ответ 11

Это не подходит для всех, но если ваше приложение уже настроено выполнять команды через сокет, вы можете использовать netcat для выдачи команд через собственно cron.

echo 'mycommand' | nc -U /tmp/myapp.sock