Cron-выражение: каждые 30 секунд

Стандартный cron запускает задачи не чаще одного раза в минуту. Вот как всё же получить интервал в 30 секунд.

Обновлено

* * * * *
Cron-выражение
Одной строкой cron это не сделать — см. ниже
Расписание

Открыть в генераторе cron-выражений →

Что означает * * * * *

Cron читает пять полей слева направо: минута, час, день месяца, месяц и день недели. Эта страница показывает ближайшее стандартное выражение (каждую минуту) и способ получить интервал в 30 секунд.

ПолеЗначениеСмыслДопустимо
Минута*каждую минуту0–59
Час*каждый час0–23
День месяца*каждый день месяца1–31
Месяц*каждый месяц1–12
День недели*каждый день недели0–6 (вс–сб)

Ближайшие запуски

Вычисляется в вашем браузере для вашего часового пояса. На сервере cron использует часовой пояс сервера (часто UTC).

  1. Включите JavaScript, чтобы увидеть время ближайших запусков.

Типичные сценарии

  • Очень частый опрос (polling)

Важно знать

Стандартный cron не может работать с интервалом меньше минуты. Чтобы запускать задачу дважды в минуту, используйте * * * * * /job.sh; sleep 30; /job.sh, либо systemd-таймер (OnCalendar=*:*:0/30), либо долго работающий воркер.

Примеры для crontab, GitHub Actions, Kubernetes и Node.js

crontab (crontab -e):

* * * * * /usr/local/bin/my-job.sh >> /var/log/my-job.log 2>&1

GitHub Actions (время в UTC): GitHub Actions запускает расписания не чаще, чем раз в 5 минут, поэтому здесь это выражение будет ограничено.

on:
  schedule:
    - cron: '* * * * *'

Kubernetes CronJob:

apiVersion: batch/v1
kind: CronJob
metadata:
  name: my-job
spec:
  schedule: "* * * * *"
  concurrencyPolicy: Forbid
  jobTemplate:
    spec:
      template:
        spec:
          restartPolicy: OnFailure
          containers:
            - name: my-job
              image: alpine:3
              command: ["sh", "-c", "echo running"]

Node.js (node-cron):

import cron from 'node-cron';
cron.schedule('* * * * *', () => {
  // your job
});

Похожие расписания

Часто задаваемые вопросы

Какое cron-выражение для каждых 30 секунд?
Стандартный cron не может запускаться чаще, чем раз в минуту. Используйте * * * * * с паузой в 30 секунд (sleep 30), systemd-таймер или процесс-воркер. Стандартный cron не может работать с интервалом меньше минуты. Чтобы запускать задачу дважды в минуту: * * * * * /job.sh; sleep 30; /job.sh, либо systemd-таймер (OnCalendar=*:*:0/30), либо долго работающий воркер.
Какой часовой пояс использует cron?
Классический cron использует местный часовой пояс сервера, и многие серверы работают в UTC. GitHub Actions всегда использует UTC. Kubernetes CronJob использует часовой пояс контроллера, если вы не задали spec.timeZone (например, Europe/Berlin).
Как проверить cron-выражение?
Вставьте его в генератор cron-выражений, чтобы увидеть описание простыми словами и время ближайших запусков, затем проверьте лог задачи после первого запуска по расписанию.