Công cụ dành cho nhà phát triển · Trình tạo Crontab
anacron và cron.daily: làm thế nào các công việc được lên lịch vẫn tồn tại khi máy bị tắt
· Lý lịch
cron độ tin cậy lập kế hoạch
cron giả sử máy luôn bật; anacron thì không. Bài đăng này giải thích cách anacron theo dõi lần chạy cuối cùng, cách các thư mục cron.daily theo phong cách Debian sử dụng nó và cách chọn giữa hai thư mục đó.
Kịch bản máy ngủ nằm ngoài trình duyệt; bản xem trước chỉ tìm kiếm các ứng viên trong tương lai
ToolAcre không thể quan sát xem máy tính xách tay có ngủ qua 06:25 hay không. Chức năng chạy tiếp theo của nó nhận được thời điểm bắt đầu ngay lập tức và tìm kiếm hoàn toàn về phía trước, bắt đầu sau một phút. Số phút khớp trước đó không được trả về vì tính năng này là bản xem trước trong tương lai, không phải là công cụ khôi phục hoặc lịch sử.
Điều đó làm cho danh sách này hữu ích cho việc lập kế hoạch nhưng lại không có ý nghĩa gì về việc bắt kịp. Một ứng cử viên bị mất tích trong quá khứ có thể đã tranh cử, bị bỏ qua hoặc bị dịch vụ khác xử lý; trình duyệt không có bản ghi thực thi. Chẩn đoán hành vi thời gian ngừng hoạt động từ bộ lập lịch đã cài đặt thay vì vắng mặt trong danh sách chỉ dành cho tương lai.
Hành vi chạy lỡ cron bên ngoài không được thiết lập ở đây
Sổ làm việc khẳng định rằng cron sẽ loại bỏ số phút bị bỏ lỡ. Không có việc triển khai daemon hoặc kiểm tra thời gian hoạt động nào là một phần của kho lưu trữ này, do đó, yêu cầu chung không được lặp lại. Điều đã được chứng minh là bản thân ToolAcre không xếp hàng công việc: nó tính toán ngày tháng trong bộ nhớ và trả chúng về trang.
Bộ lập lịch mục tiêu có thể ghi lại chính sách chạy bị lỗi và trình bao bọc có thể thêm một chính sách khác. Nắm bắt chính sách đó một cách rõ ràng. Biểu thức `0 6 * * *` giống nhau có thể tham gia vào các thiết kế khôi phục khác nhau mà không thay đổi bất kỳ giá trị nào trong năm giá trị của nó.
trạng thái anacron và sự chậm trễ không được thực hiện
Không có tệp dấu thời gian anacron, bộ đếm thời gian hoặc độ trễ khởi động trong `cron.js`. Trình phân tích cú pháp biết các trường lịch, trong khi bản xem trước biết phạm vi tìm kiếm có thể định cấu hình. Không lưu trữ khi một hành động bên ngoài hoàn thành lần cuối.
Vì vậy bài viết này không thể giải thích chính xác sự chuyển đổi trạng thái của anacron từ bằng chứng dự án. Nếu cần phải bắt kịp, hãy nghiên cứu và thử nghiệm cơ sở thực tế. ToolAcre vẫn có thể tạo bất kỳ dòng cron thời gian chính xác nào được giữ lại cùng với nó, nhưng nó không thể xác thực chính sách anacron.
cú pháp anacrontab nằm ngoài trình phân tích cú pháp năm trường
Hàng anacrontab không phải là biểu thức cron năm trường. Việc cung cấp khoảng thời gian, độ trễ và số nhận dạng của nó vào ToolAcre sẽ không thể đếm trường hoặc xác thực giá trị mà không dạy bất kỳ điều gì về cú pháp thực của nó. Các mục tiêu lập kế hoạch tương tự không bao hàm các định dạng tệp có thể hoán đổi cho nhau.
Giữ trình xác thực gốc bằng ngữ pháp gốc. Sử dụng lộ trình này cho các biểu thức theo từng phút trong tuần và một nguồn riêng biệt cho cấu hình cập nhật theo khoảng thời gian. Bản dịch phải duy trì yêu cầu hoạt động chứ không chỉ đơn thuần buộc một dạng văn bản thông qua một trình phân tích cú pháp khác.
cron.daily không thể suy ra hệ thống dây điện từ kho lưu trữ này
Cơ chế thư mục và chuyển giao giữa các gói không có trong cơ sở mã đang được xem xét. Trình tạo không thể biết liệu `/etc/cron.daily` có tồn tại hay không, trình chạy nào gọi nó hoặc điều gì xảy ra khi gói khác được cài đặt. Bất kỳ hệ thống dây điện nào như vậy đều là bằng chứng cụ thể về môi trường.
Kiểm kê mục tiêu trước khi di chuyển một nhiệm vụ. Chỉ riêng tên thư mục không tiết lộ thời gian trên đồng hồ treo tường hoặc hoạt động cập nhật. So sánh cấu hình dịch vụ được quan sát với yêu cầu và chỉ giữ lại biểu thức ToolAcre nếu công việc thực sự nằm trong đường dẫn cron tương thích.
Ranh giới làm việc: so sánh các ứng viên tương lai mà không có hứa hẹn bắt kịp
Để biết ví dụ hàng ngày, hãy nhập `0 6 * * *` và chọn vùng triển khai. Bản xem trước liệt kê tối đa năm ứng cử viên 06:00 đồng hồ treo tường trong tương lai sau thời điểm hiện tại. Nếu thời điểm bắt đầu đã qua 06:00 của ngày hôm nay thì ngày mai sẽ trở thành kết quả đầu tiên. Đó là hành vi tìm kiếm phía trước, không phải bằng chứng về những gì đã xảy ra sáng nay.
Sử dụng danh sách để kiểm tra mục đích lịch và chuyển đổi vùng. Sau đó, khởi động lại hoặc tạm dừng môi trường thử nghiệm an toàn trong khoảng thời gian đã lên lịch và tuân thủ chính sách của người lập lịch thực tế. Hai thí nghiệm trả lời các câu hỏi khác nhau và phải được ghi chép riêng biệt.
Hành vi hẹn giờ liên tục chưa được xác minh và bị bỏ qua
Sổ làm việc đã đề cập đến cài đặt liên tục trong một trình quản lý dịch vụ khác. Không có trình phân tích cú pháp hoặc kiểm tra đơn vị nào hỗ trợ câu lệnh đó ở đây. Nó có thể là nghiên cứu bên ngoài có liên quan, nhưng mô-đun này không biến nó thành một đề xuất mà không có nguồn tài liệu đáng tin cậy.
Yêu cầu chạy bị bỏ lỡ xứng đáng có tiêu chí chấp nhận rõ ràng: nên chạy ngay lập tức, bỏ qua, hợp nhất hay giữ nguyên mọi lần xuất hiện. Chọn một hệ thống ghi lại kết quả cần thiết và xác minh nó. ToolAcre chỉ có thể cung cấp nhịp cron được sử dụng làm đường cơ sở, không hơn thế nữa.
Takeaway: ghép lịch trình với chính sách chạy lỡ được xác minh riêng
Biểu thức định kỳ không đầy đủ dưới dạng thiết kế độ tin cậy nếu máy có thể không khả dụng. Chính sách khớp lịch và cập nhật lịch là riêng biệt. ToolAcre để lộ trạng thái trước và cố tình không duy trì trạng thái thực thi cho trạng thái sau.
Xem trước tương lai, ghi lại vùng và sau đó kiểm tra hành vi chạy lỡ ở đích. Nếu một cơ chế khác sở hữu khả năng khôi phục, hãy ghi lại điều đó bên cạnh biểu thức. Tránh nói rằng trình tạo hoặc năm trường đảm bảo việc thử lại vì cả hai đều không thể quan sát thấy rằng một lần chạy đã bị bỏ lỡ.