Chuyển đến nội dung chính

Tạo Biểu Thức Cron miễn phí

Xây dựng, xác thực và giải thích biểu thức cron cho các tác vụ đã lên lịch. Mô tả bằng tiếng Anh thông thường trực tiếp, xem trước 5 lần chạy tiếp theo và cài đặt sẵn mẫu phổ biến.

Hoạt động ngoại tuyến sau khi tải
phút
(0-59)
giờ
(0-23)
ngày
(1-31)
tháng
(1-12)
ngày trong tuần
(0-7)

Giải thích đơn giản

Tại 09:00, Thứ Hai đến Thứ Sáu.

Mẫu phổ biến

Tương thích với Unix cron chuẩn, GitHub Actions, Kubernetes CronJob và hầu hết các hệ thống lập lịch. Dùng * cho 'mỗi', */5 cho 'mỗi 5', 1-5 cho khoảng, 1,15 cho giá trị cụ thể. Cũng chấp nhận @hourly, @daily, @weekly, @monthly, @yearly, và các tên như MON-FRI hoặc JAN-DEC.

Công dụng phổ biến

  • Xây Dựng Cron cho GitHub Actions WorkflowsGitHub Actions sử dụng cú pháp cron cho các quy trình công việc được lên lịch. Xây dựng và xác minh lịch trình của bạn tại đây.
  • Xây Dựng Cron cho Kubernetes CronJobsTài nguyên Kubernetes CronJob sử dụng cú pháp cron tiêu chuẩn. Xây dựng và giải thích biểu thức trực quan.
  • Xây Dựng Các Mục Cron cho Linux crontabXây dựng các biểu thức cho cron Unix truyền thống (cron, crontab -e) với sự tự tin.
  • Lên Lịch Các Công Việc Bảo Trì Cơ Sở Dữ LiệuLên lịch các công việc sao lưu, vacuum hoặc phân tích một cách tự tin bằng các biểu thức cron.
  • Tìm Hiểu Cách Hoạt Động Các Biểu Thức CronMỗi điều chỉnh hiển thị giải thích tiếng Anh rõ ràng tức thì và bản xem trước 5 lần chạy tiếp theo — cách tốt nhất để tìm hiểu cron.

Cách hoạt động

Công cụ tạo biểu thức cron chạy hoàn toàn trong trình duyệt bằng bộ phân tích tự viết trong lib/cron.ts — không thư viện bên ngoài, không gọi máy chủ. Nó kiểm tra biểu thức, tạo mô tả bằng ngôn ngữ tự nhiên dùng các API Intl.DateTimeFormat và Intl.ListFormat tích hợp của trình duyệt cho tên ngày và tháng theo ngôn ngữ, và tính các lần chạy tiếp theo bằng cách tiến dần theo thời gian với logic bỏ qua trường thay vì vét cạn từng phút.

  1. 1
    Biểu thức được phân tích theo từng trường
    Bộ phân tích tách biểu thức thành năm (hoặc sáu) trường phân cách bằng khoảng trắng và tách token mỗi trường theo dấu phẩy, khoảng (ví dụ 1-5), ký hiệu bước (ví dụ */15) và giá trị có tên như MON hoặc JAN. Các @macro như @daily được mở rộng thành dạng năm trường tương đương trước khi phân tích. Giá trị không hợp lệ hoặc số ngoài phạm vi được trả về dưới dạng khóa lỗi có kiểu, ánh xạ sang thông báo đã bản địa hóa.
  2. 2
    Tạo mô tả dễ đọc
    describeCron() trong lib/cron.ts tạo câu tiếng Anh (hoặc đã bản địa hóa) bằng cách kiểm tra trường nào là ký tự đại diện và trường nào là tập giá trị cụ thể. Tên ngày và tháng được xác định qua Intl.DateTimeFormat với ngôn ngữ hiện tại, và các mục danh sách được nối bằng Intl.ListFormat để liên từ ('và' hay ',' hay dạng riêng của ngôn ngữ) khớp với ngôn ngữ người dùng.
  3. 3
    Tính các lần chạy tiếp theo với bỏ qua trường
    nextRuns() đưa một đối tượng Date tiến từ thời điểm hiện tại, nhưng bỏ qua toàn bộ tháng, ngày hoặc giờ không thể khớp thay vì kiểm tra từng phút. Nhờ vậy một lịch không thể xảy ra như 30 tháng 2 sẽ thoát nhanh qua kiểm tra giới hạn năm năm thay vì lặp 2,6 triệu lần.
  4. 4
    Biểu thức được chia sẻ qua fragment URL
    Mọi biểu thức bạn gõ được ghi vào fragment URL của trang dưới dạng #expr= (trì hoãn 500 ms qua window.history.replaceState). Fragment không bao giờ được gửi đến máy chủ; trang khôi phục từ nó khi tải, nên chia sẻ hoặc đánh dấu URL sẽ khôi phục đúng biểu thức mà không cần trạng thái máy chủ.

Công cụ liên quan

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