Biểu thức cron: mỗi 30 giây

Cron tiêu chuẩn chạy tối đa một lần mỗi phút. Dưới đây là cách vẫn đạt được khoảng cách 30 giây.

Cập nhật

* * * * *
Biểu thức cron
Không thể dùng một dòng cron — xem bên dưới
Lịch chạy

Mở trong Trình tạo biểu thức Cron →

* * * * * nghĩa là gì

Cron đọc năm trường từ trái sang phải: phút, giờ, ngày trong tháng, tháng và thứ trong tuần. Trang này hiển thị biểu thức tiêu chuẩn gần nhất (mỗi phút) và cách đạt khoảng cách 30 giây.

TrườngGiá trịÝ nghĩaCho phép
Phút*mỗi phút0–59
Giờ*mỗi giờ0–23
Ngày trong tháng*mỗi ngày trong tháng1–31
Tháng*mỗi tháng1–12
Thứ trong tuần*mỗi ngày trong tuần0–6 (Chủ nhật–Thứ bảy)

Các lần chạy tiếp theo

Được tính trong trình duyệt của bạn theo múi giờ của bạn. Trên máy chủ, cron dùng múi giờ của máy chủ (thường là UTC).

  1. Bật JavaScript để xem các lần chạy tiếp theo.

Trường hợp thường dùng

  • Polling với tần suất rất cao

Điều cần biết

Cron tiêu chuẩn không thể chạy nhanh hơn một phút. Muốn chạy một job hai lần mỗi phút: * * * * * /job.sh; sleep 30; /job.sh, hoặc dùng systemd timer (OnCalendar=*:*:0/30) hoặc một worker chạy liên tục.

Dùng trong crontab, GitHub Actions, Kubernetes và Node.js

crontab (crontab -e):

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

GitHub Actions (giờ theo UTC): GitHub Actions chỉ chạy lịch tối đa 5 phút một lần, nên lịch này sẽ bị giới hạn ở đó.

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

Lịch liên quan

Câu hỏi thường gặp

Biểu thức cron cho mỗi 30 giây là gì?
Cron tiêu chuẩn không thể chạy thường xuyên hơn mỗi phút. Dùng * * * * * kèm lệnh sleep 30 giây, systemd timer hoặc tiến trình worker. Cron tiêu chuẩn không thể chạy dưới một phút. Muốn chạy job hai lần mỗi phút: * * * * * /job.sh; sleep 30; /job.sh, hoặc dùng systemd timer (OnCalendar=*:*:0/30) hoặc một worker chạy liên tục.
Cron dùng múi giờ nào?
Cron truyền thống dùng múi giờ địa phương của máy chủ, và nhiều máy chủ chạy theo UTC. GitHub Actions luôn dùng UTC. CronJob trong Kubernetes dùng múi giờ của controller trừ khi bạn đặt spec.timeZone (ví dụ Europe/Berlin).
Làm sao để kiểm tra biểu thức cron?
Dán biểu thức vào Trình tạo biểu thức Cron để xem bằng ngôn ngữ dễ hiểu cùng các lần chạy tiếp theo, rồi kiểm tra log của job sau lần chạy đầu tiên.