Изучение очень простого способа автоматизации небольших задач с минимальными навыками программирования.
Вступление:
Вы когда-нибудь задумывались, почему вам нужно тратить много времени на выполнение черных задач с использованием сети, когда у вас есть машина, которая может сделать это за вас?
В этой статье мы рассмотрим очень простой способ автоматизации небольших задач с минимальными навыками программирования.
Применения планирования задач:
- Веб-парсер и сканеры
- Автоматические текстовые сообщения и электронные письма
- Анализ данных для трейдинга и многое другое
Требования: Уровень — начальный
- основы JS
- Основы ноды js
- Знание npm и экспресс js.
Если вы никогда не слышали о перечисленных выше технологиях, ознакомьтесь с этой статьей, в которой объясняется настройка вашего первого сервера в узле с использованием экспресс-js.
Имея это в виду, давайте начнем!
Зависимости:
Клонируйте репозиторий этот для начального кода.
После клонирования введите npm i в командном терминале, чтобы загрузить все зависимости.
Стартовый код включает в себя следующие пакеты:
- express:веб-фреймворк для простого создания API.
- dotenv: создание переменных среды
- express-sanitizer:дезинфицировать записи, поступающие через запросы.
- nodemon: зависимость от разработчиков для автоматического запуска сервера при любых изменениях кода.
Для автоматизации наших задач мы будем использовать пакет node-cronnpm.
Чтобы загрузить пакет node-cron, введите npm i node-cron в командном терминале. После загрузки проверьте, установлен ли пакет в файле package.json.
Создайте файл «.env» для хранения переменных среды, которые будут использоваться для сохранения номера ПОРТА. В файле «.env» сохраните «PORT = 8000».
Теория:
Чтобы создать надежное задание cron, полезно понять некоторые теории, связанные с ним.
Что такое node-cron?
- Согласно документации, node-cron — это простой похожий на cron планировщик задач для JS.
Что такое cron и планирование задач?
- Cron — это стандартная утилита Unix, которая используется для планирования автоматического выполнения команд через определенные промежутки времени. Это означает, что если вы хотите выполнить скрипт или функцию в заданные промежутки времени без какой-либо внешней команды или стимула, мы «планируем» задание cron.
- Например, предположим, что вы хотите отправлять сообщение группе людей каждые 5 часов с помощью функции send_message(), тогда вы можете создать задание cron, чтобы send_message() выполняется каждые 5 часов и отправляет сообщения без какого-либо вмешательства.
- Поскольку node-cron — это пакет npm, он имитирует функциональность cron. Следовательно, он похож на cron.
Как выглядит задание cron?
cron.schedule('5 * * * *', () => { console.log('The task is executed'); });
- звездочки, которые выделены, представляют собой выражение cron, сообщающее планировщику, когда запускать задачу, которая является функцией обратного вызова.
- Любой фрагмент кода, помещенный в функцию обратного вызова, будет запущен через заданный интервал времени.
- Здесь мы увидим «Задание выполнено» в консоли через каждые 5 минут последнего часа.
Как запланировать задание cron?
- Чтобы запланировать задание cron, нам нужно использовать выражение cron, которое указывает, через какой интервал времени должно выполняться задание. Способ создания выражения указан на этой диаграмме:
- В выражении 5 звездочек, шестая не обязательна.
Пример 1.Создание выражения cron для запуска задания каждые тридцать минут
Выражение: */30 * * * *
Пример 2.Создание выражения cron для запуска задания каждые тридцать минут каждого часа
Выражение: 30 * * * *
Пример 3.Создание выражения cron для запуска задания каждую секунду
Выражение: * * * * * *
Примечание. Здесь мы используем 6 звезд вместо пяти.
Пример 4.Создание выражения cron для запуска задания в 1:00 каждый день
Выражение: 0 1 * * *
Пример 5.Создание выражения cron для запуска задания в 13:00 каждый день
Выражение: * 13 * * *
Создание cron-выражения:
Имея это в виду, давайте напишем выражение cron, которое будет запускаться каждые 2 секунды.
Выражение: */2 * * * * * *
Планирование работы cron:
В VS Code создайте новый файл как «schedulers.js» и импортируйте модуль node-cron.
Создайте задачу, используя импортированный объект cron. В этой задаче мы выведем на консоль «Эта задача запущена, время чч:мм:сс am/pm».
Используя объект date в javascript, мы будем использовать метод .toLocaleString() для получения текущего времени в формате чч:мм:сс. Это просто для того, чтобы увидеть, выполняется ли наше задание каждые две секунды, как указано в выражении cron.
Вот как будет выглядеть наш файл «scheduler.js».
Теперь мы экспортируем наше задание в наш основной файл, которым является файл server.js.
В итоге файл scheduler.js будет выглядеть следующим образом:
В файл server.js импортируйте задание task из файла scheduler.js
Наш окончательный файл server.js будет выглядеть следующим образом:
Запуск сервера:
Введите npm run server в командном терминале, чтобы запустить наш сервер. Если сервер запущен, вы увидите "Сервер запущен на порту 8000" в консоли.
Кроме того, поскольку задание запланировано на запуск каждые 2 секунды, через каждые 2 секунды в консоли будет отображаться сообщение «Задача запущена, время — чч:мм:сс am/pm» .
Как мы можем видеть на изображении выше, запись консоли появляется каждые две секунды, начиная с 23:16:28, и увеличивается каждые 2 секунды, для чего мы и разработали планировщик.
Таким образом, мы создали наш самый первый планировщик заданий с огромным функционалом!
Заключение:
В этой статье мы создали планировщик заданий для выполнения автоматизированных задач.
Вместо того, чтобы просто регистрировать строку каждые 2 секунды, вы можете создать задачу для обращения к API для получения информации из Интернета или отправки сообщений своим друзьям через заданный интервал времени.
Ура!
Источники:
Дополнительные материалы на PlainEnglish.io. Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter, LinkedIn, YouTube и Discord . Заинтересованы в хакинге роста? Ознакомьтесь с разделом Схема.