Рубрики
Без рубрики

Запустите периодические задачи в узле с узлом-CRON

Автор оригинала: Scott Robinson.

Что такое Cron?

Cron Это утилита планирования, которая работает как процесс демона на фоне Unix-подобных систем. Это чрезвычайно популярно для запуска периодических задач, которые могут быть все, что вы выбрали, например, инициируете резервные копии или очистки данных из базы данных.

Вы можете добавить задания, чтобы Cron через командную строку с помощью Crontab -e команда. Используя Аргумент поместите его в режим редактирования и откройте редактор по умолчанию, где вы можете добавить задание. Синтаксис команды выглядит так:

1 2 3 4 5 [USER] /path/to/command arg1 arg2

Числа 1-5 представляют различные сроки времени, вы можете указать для планирования задания. Подробнее ниже:

  • 1: минута (0-59)
  • 2: час (0-23)
  • 3: день (0-31)
  • 4: месяц (0-12, где 12 декабрь)
  • 5: день недели (0-7, где воскресенье 0 или 7)

Пользователь Аргумент является необязательным и используется для указания того, какой пользователь должен быть запущен команду. Вы также можете указать пользователь, используя -u вариант. Есть много вариантов и вариаций параметров планирования, но мы не будем здесь больше деталей. В интернете есть множество других ресурсов, где вы можете найти эти детали.

Вот простой пример того, как запланировать скрипт, который будет управлять CRON:

45 17 3 * * /path/to/script.sh

Cron затем запустит этот сценарий в 5:45 вечера на 3-й день каждого месяца. Хотя синтаксис может сначала спутать немного запутанным, на самом деле это очень мощный способ планирования повторяющихся задач. Этот формат был принят многими программами и утилитами для указания планировщиков .dq4

узел-крон

Что это?

Утилита Cron стала синонимом задач планирования, что является тем, как Узел-Крон получил свое название. Он на самом деле на самом деле не использует или интерфейс с утилитой CRON внизу, но вместо этого он просто расписан и запускает периодические задачи для использования узел Setimeout () функция. Это делает это путем разбора графика форматирования CRON, который вы указываете, показывает, когда следующий «галочка» должен быть и устанавливает тайм-аут соответственно.

Как это использовать

Использовать Узел-Крон , вам придется запланировать функцию для работы программ, что может быть удобнее для вас, чем на необходимость беспорядок с командной строкой. Простая функция может быть запланирована так:

var cron = require('cron');

var job = new cron.CronJob('* * * * *', function() {
	console.log('Function executed!');
}, null, true);

При запуске этого кода вы увидите текст « Функция выполнена! «Печатается на консоль один раз в минуту.

Вы даже можете получить немного позже и указать часовой пояс, в котором должна работать задача. Или другой вариант, чтобы сказать Узел-Крон чтобы не начать работу еще. Таким образом, вы можете инициализировать работу, а затем использовать .start () и .stop () Методы только когда вам это нужно. Смотрите полную документацию для полного списка параметров и вариантов.

Преимущества и недостатки

Лично мне очень нравится Узел-Крон Из-за того, насколько легко вы можете программно расписание кода для запуска. И поскольку он работает на узле, вы можете использовать его на любой системе, которая поддерживает узел (например, Windows), а не только для Unix-подобных систем. Таким образом, все, что вы используете, код является больше системной независимой, чем если бы он использовал Cron напрямую.

Самый большой недостаток, на мой взгляд, состоит в том, что поскольку он не использует Cron внизу, мы не получаем настойчивость, что у нас будет иначе с Кроном. То, что я имею в виду под этим на систему перезапустить, наша «работа» больше не будет работать. Вместо этого вам придется сделать дополнительную работу, чтобы снова запустить процесс узла, например, настроить его, чтобы запустить запуск, поместив/связывая его в /etc/init.d/ Отказ Это не очень трудно сделать, но это также не очень удобно.