Một nhu cầu rất phổ biến đối với một ứng dụng là chạy một tập lệnh mỗi X phút/giờ. Về cơ bản nó không có gì phức tạp, chỉ cần một số mã PHP và một mục nhập crontab.Cronjob - làm thế nào để làm điều đó đúng cách?
Mặc dù tôi đã viết khá một vài trong số những cronjobs trong những năm qua tôi vẫn chưa thấy bất kỳ thực hành tốt nhất, ít nhất là không nhiều. Như với mọi "xử lý nền", rất nhiều thứ có thể đi sai, đặc biệt là trong một cài đặt sản xuất.
Trong đó:
- một lỗi xảy ra trong quá trình thực hiện các cron và kịch bản chết chế biến một nửa số dữ liệu
- cronjob bị tai nạn bắt đầu hai lần bởi quá trình khác/bởi lỗi người dùng/bất cứ điều gì
- cronjob mất cách dài hơn dự kiến và kịch bản được gọi là một lần nữa mặc dù nó không thực hiện xử lý dữ liệu
- , vv
Một số pratices tốt nhất để viết kịch bản cronjob mạnh mẽ và vững chắc bằng đá là gì? Viết một tập tin khóa khẳng định rằng chỉ có một cá thể chạy, mở rộng đăng nhập và giám sát trong oder để ngăn chặn việc gửi hàng ngàn email trùng lặp? Ý tưởng của bạn là gì?
Điều thú vị là bạn đã đăng bài này vì tôi đã nghiên cứu và tự hỏi một số điều tương tự. Trong trường hợp của tôi, tôi thực sự lo lắng về cách thực hiện hiệu quả xử lý ngoại lệ trong một kịch bản lệnh shell mà tôi đang viết. http: // stackoverflow.com/questions/6961389/exception-handling-in-shell-scripting có một số thông tin tốt về điều đó trong trường hợp bạn tò mò. Tôi chủ yếu là một nhà phát triển Java và xử lý ngoại lệ có rất mạnh mẽ nhưng có vẻ khó khăn hơn trong vùng * nix. –
điều này sẽ phụ thuộc vào từng kịch bản được chạy, không có câu trả lời chung, một số cần kiểm tra rất chắc chắn một số ... –
Tôi đã đánh dấu câu hỏi này với dự đoán các câu trả lời sáng tạo với biện minh chi tiết về lợi ích và hạn chế của chúng, và tôi khá thất vọng với câu trả lời "Đây là những gì tôi làm". – nickb