Tiếng Việt

Công cụ dành cho nhà phát triển · Trình tạo Crontab

Chạy công việc định kỳ mỗi phút: khi bỏ phiếu sai và nên sử dụng cái gì

· Tại sao nó quan trọng

cron bỏ phiếu hiệu suất

Sáu mươi phút tích tắc bên cạnh một biểu thức ký tự đại diện gồm năm trường
Hình minh họa vector ToolAcre gốc

Công việc mỗi phút rất dễ viết và tốn kém. Bài đăng này giải thích chi phí, các trường hợp hợp lý và các lựa chọn thay thế từ khoảng thời gian dài hơn đến daemon và trình kích hoạt sự kiện.

Cú pháp mỗi phút tạo 1,440 ứng cử viên lịch trong một ngày 24 giờ hoàn chỉnh

`* * * * *` mở rộng đến từng phút từ 0 đến 59, mỗi giờ và mỗi ngày theo lịch. Vào một ngày trọn vẹn 24 giờ tạo ra 1,440 nhãn phút phù hợp với đồng hồ treo tường. Các bài kiểm tra và cài đặt trước của ToolAcre thiết lập ngữ pháp, trong khi bản xem trước của nó chỉ hiển thị năm ứng viên tiếp theo để giữ cho giao diện có thể đọc được.

Số lượng mô tả cơ hội, không phải hành động thành công. Một phút cục bộ không tồn tại trong quá trình chuyển đổi vùng chuyển tiếp có thể bị bỏ qua trong bản xem trước này và trình duyệt không bao giờ thực thi một tác vụ. Sử dụng biểu thức để suy luận về nhịp độ, sau đó đo lường hiệu ứng thời gian chạy thực tế khi lệnh và bộ lập lịch tồn tại.

Chi phí thời gian chạy không thể được tính chỉ từ biểu thức

Một biểu thức không chứa thời gian khởi động quy trình, số lượng kết nối, khối lượng nhật ký hoặc mức sử dụng tài nguyên. Kiểm tra một dòng và nhập khẩu lớn có thể có cùng năm sao trong khi áp đặt chi phí không thể so sánh được. Danh sách chi phí chung của sổ làm việc có thể hợp lý nhưng ToolAcre không thể định lượng chúng từ văn bản lịch trình.

Do đó, quá trình phân tích hiệu suất bắt đầu bên ngoài trình tạo: quan sát thời lượng, CPU, I/O và các lệnh gọi hành động thực tế tiếp theo. Chỉ nhân cẩn thận với tần suất ứng cử viên sau khi đo các lần chạy đại diện. Trình phân tích cú pháp có thể cho bạn biết có bao nhiêu giá trị phút khớp nhau; nó không thể cho bạn biết mỗi trận đấu có giá bao nhiêu.

Sự phù hợp phụ thuộc vào hành động bên ngoài và yêu cầu về độ trễ

Việc thăm dò từng phút có hợp lý hay không tùy thuộc vào yêu cầu về độ trễ và thiết kế hành động. ToolAcre không biết liệu lệnh có bình thường hay không, liệu nguồn sự kiện có tồn tại hay không hoặc người dùng có thể chịu được độ trễ nào. Nó không nên gắn nhãn lịch trình là tốt hay xấu.

Chuyển yêu cầu thành khoảng thời gian tối đa có thể chấp nhận được, sau đó so sánh yêu cầu đó với chi phí quan sát được và việc xử lý lỗi. Nếu độ trễ năm phút là đủ, `*/5 * * * *` sẽ giảm số phút ứng cử viên xuống còn 12 phút mỗi giờ. Nếu độ trễ chỉ một phút có tác dụng, hãy giữ lại nhịp và giải quyết rõ ràng các mối lo ngại về việc thực thi.

Sự bù đắp theo phút phân bổ công việc cố định theo giờ nhưng không ngẫu nhiên hóa nó

Giá trị chênh lệch cố định chẳng hạn như `7 * * * *` chọn phút thứ bảy mỗi giờ. Nó có thể tách công việc đó khỏi công việc được ghim đến phút 0, nhưng nó mang tính quyết định hơn là ngẫu nhiên. Nhiều khoản bù đắp có thể phân phối các công việc đã biết trong suốt một giờ khi số phút chính xác của chúng không quan trọng.

ToolAcre mô tả phút thứ bảy trôi qua mỗi giờ và xem trước các ngày tương ứng. Nó không kiểm tra các lịch trình khác trên máy chủ, vì vậy nó không thể chứng minh rằng phần bù đã chọn là yên tĩnh. Xây dựng một bản kiểm kê trước khi yêu cầu tải đã được dàn trải và lưu giữ lý do bù đắp trong tài liệu.

Công nhân và bộ tính giờ dịch vụ là những lựa chọn thay thế bên ngoài kho lưu trữ này

Các công nhân làm việc lâu dài, bộ tính giờ phân phối sự kiện và người quản lý dịch vụ có thể thay thế việc bỏ phiếu trong một số hệ thống. Không có trình tạo Crontab nào được triển khai và cấu hình của chúng không thể được suy ra từ `* * * * *`. Kho lưu trữ không có tích hợp máy khách hoặc người giám sát hàng đợi.

Chọn các lựa chọn thay thế từ bằng chứng của kiến ​​trúc mục tiêu. Một nhân viên có thể loại bỏ việc khởi động lặp lại trong khi đưa ra các yêu cầu về vòng đời và phục hồi. Đường dẫn sự kiện có thể giảm bớt các lượt kiểm tra trống trong khi thêm ngữ nghĩa phân phối. Trình tạo vẫn hữu ích cho bất kỳ nhiệm vụ định kỳ còn lại nào, nhưng nó không thể phân xử những sự cân bằng đó.

Ví dụ đã hoạt động: giảm tần suất ứng viên và so sánh các bản xem trước

So sánh ba biểu thức trong bảng: mỗi phút, `*/5 * * * *` và `7 * * * *`. Lần đầu tiên tăng thêm một phút, lần thứ hai chọn 0, 5, 10 và các bội số tiếp theo, còn lần thứ ba chọn vị trí một phút mỗi giờ. Các mô tả hiển thị từng thay đổi mà không thực hiện một cuộc thăm dò.

Sử dụng các danh sách ứng cử viên đó để thảo luận về độ trễ một cách cụ thể. Nếu một yêu cầu đến ngay sau năm phút của ứng viên, cơ hội tiếp theo sẽ còn gần năm phút nữa. Ràng buộc đơn giản đó chính là bằng chứng về lịch trình. Thời lượng xử lý, độ trễ hàng đợi và thành công vẫn là các phép đo bổ sung mà trình duyệt không thể cung cấp.

Điều này không bao gồm - lập lịch theo phút, điều mà cron không thể thể hiện

Cron năm trường không thể biểu thị giây vì trình phân tích cú pháp này bắt đầu bằng phút. Đầu vào sáu trường bị từ chối thay vì được coi là tần số cao hơn. Tạo vòng lặp shell để mô phỏng công việc dưới phút là hành vi lệnh bên ngoài ToolAcre và không được khuyến nghị ở đây nếu không kiểm tra thời gian chạy cụ thể.

Nếu yêu cầu dưới một phút, hãy chọn người lên lịch hoặc nhân viên được thiết kế và ghi lại cho giải pháp đó. Không buộc giá trị giây không được hỗ trợ vào trường đầu tiên. Lỗi chính xác năm trường là một biện pháp bảo vệ phương ngữ hữu ích giúp ngăn một biểu thức tìm nhanh bị đọc sai một cách thầm lặng.

Bài học rút ra: chọn khoảng thời gian thô nhất đáp ứng nhu cầu — và trình tạo sẽ tạo biểu thức */5 hoặc */15 dễ dàng như năm sao

Chọn nhịp thô nhất đáp ứng nhu cầu được đo lường nhưng giữ quyết định tách biệt khỏi tính hợp lệ của biểu thức. ToolAcre có thể tạo lịch trình phút, năm phút và lịch bù trừ về mặt cú pháp chính xác như nhau. Chỉ có bằng chứng hoạt động mới xác định cái nào thuộc về một hệ thống.

Sử dụng trình tạo để liệt kê các cơ hội, sau đó đính kèm các phép đo chi phí, độ trễ và độ tin cậy từ mục tiêu. Bản ghi kết hợp đó trung thực hơn việc khai báo cron đắt từng phút trong mọi trường hợp hoặc giả sử một biểu thức ít thường xuyên hơn sẽ tự động khắc phục công việc kém hiệu quả.