Tôi không biết về "thực hành tốt nhất". Tôi biết những lỗi phổ biến nhất.
Sai lầm đầu tiên: Bản thân DOS
Bạn sử dụng webhandler để xử lý công việc chạy dài. Điều này có thể xấu hoặc cực kỳ xấu tùy thuộc vào tỷ lệ phần trăm lượt truy cập của bạn trở thành công việc chạy dài, thời gian họ chạy và lưu lượng truy cập duy trì bạn nhận được.
Bạn muốn đảm bảo rằng bạn sẽ không nhận được hơn 1 công việc chạy dài trong khoảng thời gian để công việc chạy dài đó hoàn thành. Nếu bạn tự làm DOS. Nó cũng sẽ trở nên tồi tệ hơn khi bạn có càng nhiều lưu lượng truy cập giả định tỷ lệ phần trăm và thời gian không đổi. Đó là một trong những vấn đề tự đặt ra giới hạn tăng trưởng giao thông.
Sai lầm thứ hai: Sinh sản từ webhandler
Sinh ra một quy trình từ trình xử lý web để xử lý một quy trình chạy dài có thể khó khăn và do đó cũng dễ bị lỗi.
- Bạn phải tách ra khỏi cha mẹ một cách chính xác nếu không webhandler chờ đợi đứa trẻ hoàn thành.
- Khi bạn rẽ nhánh một đứa trẻ trong unix, nó thừa hưởng tay cầm mở từ cha mẹ. Chúng sẽ tự động bị đóng trừ khi chúng bị ghi đè. Điều này bao gồm những thứ như kết nối cơ sở dữ liệu, tập tin, kết nối mạng mở khác. Tất cả được đóng lại khi quá trình con hoàn thành.
Tùy chọn
Tôi thường sử dụng at(1)
để phân tách sạch khỏi webhandler mà không cần gạt.
Bạn cũng có thể sử dụng một triển khai bỏ phiếu với cron
.
Bạn có thể giao tiếp với một quy trình máy chủ khác xử lý việc xử lý. Giao tiếp đó có thể được thực hiện với sockets
, pipes
hoặc trừu tượng hóa mức cao hơn như cuộc gọi REST http hoặc định tuyến tin nhắn hàng đợi.