Trình tạo cron
Biểu thức cron lên lịch công việc định kỳ: sao lưu lúc 2 giờ sáng, báo cáo thứ Hai hàng tuần, lọc bộ nhớ đệm hàng giờ. Năm (hoặc sáu trường có giây) như 0 9 * * 1-5 có nghĩa là 09:00 các ngày trong tuần. Xây dựng biểu thức một cách trực quan thay vì ghi nhớ thứ tự trường.
Phút
Giờ
Ngày trong tháng
Tháng
Thứ trong tuần
Đầu ra
0 9 * * 1-5
Cách xây dựng biểu thức cron
1. Chọn lịch trình: phút, giờ, ngày trong tháng, tháng, ngày trong tuần.
2. Đọc biểu thức được tạo, ví dụ:. 0 30 8 * * *.
3. Xác minh mô tả mà con người có thể đọc được phù hợp với mục đích.
4. Sao chép vào lịch trình hành động crontab, Kubernetes CronJob hoặc GitHub.
Ví dụ về lịch trình cron
Hàng ngày lúc 8:30 sáng
0 30 8 * * * trong Thạch anh sáu trường; 30 8 * * * trong cron 5 trường tiêu chuẩn.
Cứ 15 phút một lần
*/15 * * * * chạy lúc :00, :15, :30, :45 mỗi giờ.
Nửa đêm đầu tháng
0 0 1 * * chạy công việc thanh toán hàng tháng.
Khi nào nên dùng trình tạo cron
• Khi tránh các lỗi thứ tự từng trường một.
• Khi ghi lại lịch trình cho các sổ sách hoạt động.
• Khi so sánh cron Linux với cú pháp AWS EventBridge.
Sự khác biệt về phương ngữ
• Khi trình lập lịch trình sử dụng cú pháp không chuẩn — hãy kiểm tra tài liệu của nhà cung cấp đám mây.
• Khi nào vấn đề về múi giờ — cron thường là UTC trên máy chủ; chuyển đổi rõ ràng.
• Khi cần lập lịch theo phút phụ — hãy dùng bộ tính giờ ngắt quãng chứ không phải cron cổ điển.
Ghi nhớ thứ tự trường
Phút Giờ Ngày Tháng Ngày trong tuần — hoặc thêm Giây khi bắt đầu cho Quartz. Trước tiên hãy viết mô tả, sau đó ánh xạ tới các trường.
Chồng chéo với lịch trình của con người
"Mỗi buổi sáng các ngày trong tuần" trở thành 0 9 * * 1-5 — chế độ tiết kiệm ánh sáng ban ngày sẽ thay đổi đồng hồ treo tường địa phương nếu máy chủ TZ tuân theo DST.
Kubernetes CronJob
trường lịch trình sử dụng cron tiêu chuẩn; concurrencyPolicy Forbid tránh các công việc sao lưu chồng chéo.
Câu hỏi thường gặp
Năm với sáu trường?
Cron cổ điển: phút giờ dom tháng dow. Một số thêm giây trước.
Ngày trong tháng so với ngày trong tuần?
Cả hai được chỉ định thường có nghĩa HOẶC trong Vixie cron — khó hiểu — sử dụng một trường làm *.
Múi giờ?
Máy chủ cục bộ hoặc UTC — Trường Kubernetes CronJob spec.timeZone trong các phiên bản mới hơn.
*/2 nghĩa?
Cứ 2 đơn vị của trường đó — */2 trong trường giờ cứ sau hai giờ.
Công cụ cục bộ?
Có — biểu thức được tích hợp trong trình duyệt.
Kiểm tra tiếp theo chạy?
Sử dụng croniter hoặc bảng điều khiển của nhà cung cấp để liệt kê N lần bắn tiếp theo.