Ekspresi cron: setiap 30 detik

Cron standar hanya berjalan paling sering sekali per menit. Berikut cara tetap mendapatkan interval 30 detik.

Diperbarui

* * * * *
Ekspresi cron
Tidak mungkin dengan satu baris cron — lihat di bawah
Jadwal

Buka di Generator Ekspresi Cron →

Arti * * * * *

Cron membaca lima field dari kiri ke kanan: menit, jam, tanggal dalam bulan, bulan, dan hari dalam minggu. Halaman ini menampilkan ekspresi standar terdekat (setiap menit) dan cara mendapatkan interval 30 detik.

FieldNilaiArtiRentang yang diizinkan
Menit*setiap menit0–59
Jam*setiap jam0–23
Tanggal dalam bulan*setiap hari dalam bulan1–31
Bulan*setiap bulan1–12
Hari dalam minggu*setiap hari dalam minggu0–6 (Min–Sab)

Waktu run berikutnya

Dihitung di browser kamu untuk zona waktu kamu. Di server, cron memakai zona waktu server (sering UTC).

  1. Aktifkan JavaScript untuk melihat waktu run berikutnya.

Penggunaan umum

  • Polling yang sangat sering

Perlu diketahui

Cron standar tidak bisa lebih kecil dari satu menit. Cara lain untuk menjalankan job dua kali per menit: * * * * * /job.sh; sleep 30; /job.sh, atau pakai systemd timer (OnCalendar=*:*:0/30) atau worker yang berjalan terus-menerus.

Pakai di crontab, GitHub Actions, Kubernetes, dan Node.js

crontab (crontab -e):

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

GitHub Actions (waktu dalam UTC): GitHub Actions menjalankan jadwal paling sering setiap 5 menit, jadi jadwal ini akan dibatasi di sana.

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
});

Jadwal terkait

Pertanyaan yang sering diajukan

Apa ekspresi cron untuk setiap 30 detik?
Cron standar tidak bisa berjalan lebih sering dari sekali per menit. Gunakan * * * * * dengan sleep 30 detik, systemd timer, atau proses worker. Cron standar tidak bisa lebih kecil dari satu menit. Untuk menjalankan job dua kali per menit: * * * * * /job.sh; sleep 30; /job.sh, atau pakai systemd timer (OnCalendar=*:*:0/30) atau worker yang berjalan terus-menerus.
Zona waktu apa yang dipakai cron?
Cron klasik memakai zona waktu lokal server, dan banyak server berjalan di UTC. GitHub Actions selalu memakai UTC. Kubernetes CronJob memakai zona waktu controller kecuali kamu mengatur spec.timeZone (misalnya Europe/Berlin).
Bagaimana cara menguji ekspresi cron?
Tempel ekspresinya ke Generator Ekspresi Cron untuk melihatnya dalam bahasa sehari-hari beserta waktu run berikutnya, lalu cek log job kamu setelah run terjadwal pertama.