node-cron: Планировщик задач JavaScript

Онлайн-тренажер Python для начинающих

Изучайте Python легко и без перегрузки теорией. Решайте практические задачи с автоматической проверкой, получайте подсказки на русском языке и пишите код прямо в браузере — без необходимости что-либо устанавливать.

Начать курс

Что такое node-cron?

node-cron — это легковесная библиотека для Node.js, которая позволяет запускать JavaScript-функции (задачи) по расписанию, используя синтаксис cron-выражений. Она является аналогом системного планировщика cron в Unix, но работает внутри вашего приложения.

Зачем нужна?

Библиотека необходима для автоматизации рутинных операций на сервере: очистка базы данных, отправка email-рассылок, создание бэкапов, обновление кэша, парсинг данных и любые другие периодические задачи. Это избавляет от необходимости писать собственные таймеры и управлять временными интервалами вручную.

Установка

Установка производится через npm или yarn:

npm install node-cron

или

yarn add node-cron

Основные функции

  • Простота синтаксиса: использует стандартные cron-выражения (минуты, часы, дни и т.д.)
  • Гибкость: поддержка секунд, опциональный часовой пояс, выполнение по будням/выходным
  • Управление задачами: методы start(), stop(), destroy() для контроля выполнения
  • Лёгкость: не требует внешних зависимостей, размер библиотеки минимален

Пример кода на JavaScript (Node.js)

const cron = require('node-cron');

// Задача: каждую минуту выводить сообщение
cron.schedule('* * * * *', () => {
  console.log('Задача выполняется каждую минуту');
});

// Задача: каждый день в 9:30 утра
cron.schedule('30 9 * * *', () => {
  console.log('Ежедневная задача в 9:30');
});

// Задача: каждый понедельник в 8:00
cron.schedule('0 8 * * 1', () => {
  console.log('Понедельник, 8:00 — время для отчёта');
});

// Задача с секундами: каждые 10 секунд
cron.schedule('*/10 * * * * *', () => {
  console.log('Прошло 10 секунд');
});

// Остановка задачи через 5 секунд
const task = cron.schedule('*/1 * * * * *', () => {
  console.log('Бесконечная задача');
});
setTimeout(() => {
  task.stop();
  console.log('Задача остановлена');
}, 5000);

Когда использовать

Используйте node-cron, когда вам нужно выполнять код в определённое время или с заданной периодичностью внутри Node.js-приложения. Это идеально подходит для:

  • регулярной очистки временных файлов или логов;
  • отправки уведомлений или email по расписанию;
  • синхронизации данных с внешними API;
  • генерации отчётов в фоне;
  • запуска тестов или проверок здоровья сервера.

Библиотека не подходит для высоконагруженных распределённых систем (лучше использовать очередь задач), но для большинства типовых сценариев — это оптимальное решение.

Рекомендаций