DevToolPal
PL

Wyrażenie cron

Co 15 minut w godzinach pracy

Uruchamia się co 15 minut między 09:00 a 17:45 w dni robocze.

*/15 9-17 * * 1-5 Otwórz w parserze wyrażeń cron

Pole po polu

Pole Wartość Pasuje do
Minuta */15 0, 15, 30, 45
Godzina 9-17 9, 10, 11, 12, …, 17
Dzień miesiąca * Każda wartość
Miesiąc * Każda wartość
Dzień tygodnia 1-5 poniedziałek, wtorek, środa, czwartek i piątek

Najbliższe uruchomienia

Przykład: pierwsze 6 uruchomień po 1 stycznia 2026 (UTC).

  1. czw., 1 sty 2026, 09:00
  2. czw., 1 sty 2026, 09:15
  3. czw., 1 sty 2026, 09:30
  4. czw., 1 sty 2026, 09:45
  5. czw., 1 sty 2026, 10:00
  6. czw., 1 sty 2026, 10:15

Gotowe wersje

crontab
*/15 9-17 * * 1-5 /path/to/command

Dodaj wiersz przez crontab -e. Działa w strefie czasowej serwera, chyba że ustawiono CRON_TZ lub TZ.

Kubernetes CronJob
apiVersion: batch/v1
kind: CronJob
metadata:
  name: every-15-minutes-during-business-hours
spec:
  schedule: "*/15 9-17 * * 1-5"
  timeZone: "Etc/UTC"
  concurrencyPolicy: Forbid
  jobTemplate:
    spec:
      template:
        spec:
          restartPolicy: OnFailure
          containers:
            - name: job
              image: busybox:1.36
              command: ["/bin/sh", "-c", "date; echo run"]

Ustaw spec.timeZone (Kubernetes 1.27+); bez tego harmonogram korzysta ze strefy controller managera, zwykle UTC.

GitHub Actions
on:
  schedule:
    - cron: '*/15 9-17 * * 1-5'
  workflow_dispatch:

GitHub Actions zawsze używa UTC, akceptuje odstępy od 5 minut i przy dużym obciążeniu może uruchamiać zadania z opóźnieniem.

Quartz
0 */15 9-17 ? * MON-FRI

Quartz ma sekundy na początku i wymaga ? w dniu miesiąca lub dniu tygodnia. Dni mają numery 1–7 od niedzieli, więc bezpieczniej używać nazw.

Spring
@Scheduled(cron = "0 */15 9-17 * * MON-FRI")

Spring @Scheduled(cron = …) przyjmuje sześć pól: sekundy i zwykłe pięć.

FAQ

› Jak zakończyć dokładnie o 17:00?

Jednym wierszem cron nie skończy w połowie godziny. Użyj */15 9-16 * * 1-5 oraz drugiego wiersza 0 17 * * 1-5.

› W jakiej strefie czasowej działa */15 9-17 * * 1-5?

Cron używa strefy czasowej maszyny lub usługi, która go uruchamia. W Linuksie to strefa systemowa, chyba że ustawiono CRON_TZ lub TZ; CronJoby w Kubernetes obsługują spec.timeZone; GitHub Actions zawsze używa UTC.

› Jak sprawdzić harmonogram przed wdrożeniem?

Otwórz */15 9-17 * * 1-5 w parserze wyrażeń cron w tym serwisie. Objaśni każde pole i pokaże najbliższe uruchomienia w czasie lokalnym lub UTC, bezpośrednio w przeglądarce.