Легко автоматизируйте работу, планируя задачи с помощью Cron Jobs.

Планирование задач может быть удобным способом автоматизации работы, и Cron Jobs — способ сделать это. У всех нас есть одна повторяющаяся задача, которую мы хотели бы выполнять автоматически без ручного вмешательства. Не забывайте: «Это тоже БЕСПЛАТНО».

Задания Cron предназначены для выполнения регулярных запланированных действий, таких как резервное копирование, создание отчетов и т. д. Каждая из этих задач должна быть настроена на бесконечное повторение (например, один раз в день/неделю/месяц); вы можете определить момент времени в пределах этого интервала, когда задание должно начаться.

Что такое задание Cron?

Задание cron — это задача, которая периодически запускается по заданному расписанию, определяемому выражением Cron (* * * * *).

# ┌────────── minute (0 - 59)
# │ ┌────────── hour (0 - 23)
# │ │ ┌────────── day of the month (1 - 31)
# │ │ │ ┌────────── month (1 - 12)
# │ │ │ │ ┌────────── day of the week (0 - 6)
# │ │ │ │ │                                  
# │ │ │ │ │
# │ │ │ │ │
# * * * * *

Не беспокойтесь о синтаксисе, мы можем использовать Crontab Guru, чтобы создать его очень легко.

Как настроить работу Cron?

Есть много способов настроить Cron Jobs

на уровне ОС

  1. Вы можете использовать встроенный Планировщик Windows
  2. Если вы используете Ubuntu, вы можете использовать Cron Utility.

Но в большинстве случаев вы хотели бы держать его подальше от ОС, и для этого ближе к вашему приложению мы можем использовать

на уровне приложений

  1. используйте такие пакеты, как Cron, для создания задания cron в вашем приложении NodeJS, но это не может работать в бессерверном стеке.
  2. использовать бессерверное решение, такое как AWS Lambda, но оно требует много настроек и кредитной карты
  3. используйте облачные функции Firebase с планированием, это намного проще, чем AWS, но требует кредитной карты.
  4. используйте инструмент SAAS, такой как EasyCron

Наш победитель (действия GitHub)

Хотя все вышеперечисленное является хорошим решением, самый простой способ сделать это для хобби-проектов — использовать действия GitHub, потому что это

  1. легко настроить с помощью кода и в сочетании с самим кодом приложения
  2. бесплатно для публичных репозиториев
  3. предоставляет до 4000 минут в месяц для частных репозиториев (чрезвычайно трудно использовать)
  4. позволяет нам создавать неограниченное количество рабочих мест и графиков

Я уверен, что сейчас вы, должно быть, спрашиваете

Как помогают действия GitHub?

GitHub Actions упрощает автоматизацию всех ваших программных рабочих процессов, теперь с помощью CI/CD мирового класса. Создавайте, тестируйте и развертывайте свой код прямо из GitHub. Заставьте проверки кода, управление ветвями и сортировку проблем работать так, как вы хотите. Подробнее о них можно прочитать здесь.

Теперь, чтобы настроить собственное задание Cron с помощью действий GitHub,

  1. Перейдите в свой репозиторий GitHub (создайте его, если требуется).
  2. Перейдите на вкладку Действия и создайте новый рабочий процесс действия.

3. Добавьте в него свое расписание Cron и задачу. Зафиксируйте изменение.

# This is a basic workflow to help you get started with Actions
name: First Cron Job
# Controls when the workflow will run
on:
  # Triggers the workflow every 5 minutes
  schedule:
    - cron: "*/5 * * * *"
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
  # This workflow contains a single job called "cron"
  cron:
    # The type of runner that the job will run on
    runs-on: ubuntu-latest
# Steps represent a sequence of tasks that will be executed as part of the job
    steps:
      # Runs a single command using the runners shell
      - name: Run a one-line script
        run: echo Hello, world!

Это запустит задание, которое будет повторять «Hello, world!» каждые 5 минут.

Перейдите на вкладку «Действия» и дождитесь появления журнала. Когда вы нажмете на любое выполнение, вы увидите такие детали

Вот как вы можете запланировать задание Cron с помощью действий GitHub.

Примечание. Запланированное событие может быть отложено в периоды высокой загрузки рабочих процессов GitHub Actions. Время высокой нагрузки включает начало каждого часа. Чтобы уменьшить вероятность задержки, запланируйте запуск рабочего процесса в другое время часа.

Посмотрите, как задание, запланированное для запуска каждые 5 минут, несколько раз задерживалось. Пожалуйста, помните о том, как вы используете бесплатные ресурсы.

Как использовать задания Cron с действиями GitHub?

Я использую GitHub Actions, чтобы регулярно обновлять свой баннер в Твиттере с последним количеством подписчиков DEV и вехами твитов, такими как 500 просмотров статьи или достижение 100 подписчиков в моей учетной записи DEV.

Вы можете прочитать мои статьи, объясняющие приведенные выше варианты использования, здесь.

Вы можете найти репозиторий GitHub здесь. Не стесняйтесь раскошелиться и использовать для своего профиля.

Добросовестное использование

Хотя действия GitHub бесплатны, мы должны использовать их разумно, чтобы уважать усилия провайдера. В наш век передовых технологий такие гиганты, как GitHub и Vercel, упрощают нам работу, поэтому мы обязаны не злоупотреблять этими инструментами.

Это все на данный момент. Я надеюсь, что вы найдете эту статью полезной! Если у вас есть какие-либо отзывы или вопросы, пожалуйста, не стесняйтесь оставлять их в комментариях ниже, я хотел бы услышать и поработать над ними.

Для большего количества такого контента, пожалуйста, следуйте за мной.

До следующего раза

Первоначально опубликовано на https://theanshuman.dev 7 февраля 2022 г.