Tôi là quản trị viên duy nhất của cơ sở dữ liệu. Tôi muốn chạy một kịch bản một lần về cơ bản mất khoảng 3800 hình ảnh được quét (nó sẽ tăng lên đến 10 000 nghìn) và tạo một vài hình thu nhỏ cho mỗi hình ảnh bằng cách sử dụng hàm PHP exec() để thực thi chương trình bên ngoài imagemagick để tạo hình thu nhỏ.Lỗi thời gian thực thi tối đa trong tập lệnh PHP, đây có phải là giải pháp tốt để bỏ qua nó không?
Tôi đã tạo tập lệnh, khởi chạy tập lệnh và tất cả hoạt động hoàn hảo! Tất cả được thực hiện trên máy chủ phát triển cục bộ của tôi. Tập lệnh mất khoảng 11 phút để tạo hàng nghìn hình thu nhỏ. Đó là một hoạt động một lần được chạy mỗi năm, vì vậy hậu quả là tối thiểu.
Cho đến nay rất tốt. Đây là khi tôi gặp vấn đề.
Mọi thứ tôi đã làm trên máy chủ phát triển cục bộ của mình tôi đã thực hiện trên máy chủ trực tiếp cho mục đích thử nghiệm. Tôi có một tài khoản lưu trữ được chia sẻ với hostgator. Chạy kịch bản dài 11 phút của tôi trên một máy chủ chia sẻ cho tôi lỗi 'Thời gian thực thi tối đa 30 giây đã vượt quá ...'. Tôi đã nghiên cứu, đã thử nhiều giải pháp trong bài này (Increase max execution time for php) chỉ để nhận ra không có gì tôi có thể làm để thay đổi thời gian thực thi tối đa của một tập lệnh trên một máy chủ chia sẻ.
Tôi bị kẹt. Vì vậy, câu hỏi của tôi là giải pháp rõ ràng ở đây là gì.
Tôi đã nghĩ đến việc khởi chạy tập lệnh cho mỗi 200 hình ảnh, tự động làm mới trang và chạy lại tập lệnh cho 200 hình ảnh tiếp theo, v.v. cho đến khi không còn hình ảnh nào. Bằng cách này tôi chắc chắn rằng thời gian thực hiện tối đa 30 giây cho phép trên máy chủ chia sẻ của tôi được tôn trọng. Nó trông giống như một giải pháp ngay trên đỉnh đầu của tôi, nhưng tôi không chắc chắn nếu đây là một NO NO, nếu tôi sẽ chạy vào vấn đề lớn hơn, quá nhiều âm ..
Đây có phải là hiển nhiên dung dịch? Bất cứ ai chạy vào cùng một vấn đề? Các bạn đã gợi ý điều gì?
Cảm ơn
Tại sao bạn cần tạo hình thu nhỏ mỗi năm khác? Không phải là một thời gian trong việc tạo ra các hình ảnh ban đầu là đủ để cũng tạo ra các hình thu nhỏ và để nó mãi mãi (cho đến khi nó đã lỗi thời)? –
Bạn có kiểm tra xem đang chạy trong chế độ CLI không có thời gian thực hiện không? Thông thường cho các kịch bản lệnh CLI có '0' (không giới hạn) cho max_execution_time - http://php.net/manual/en/info.configuration.php # ini.max-execution-time – codedge
rất nhiều máy chủ chia sẻ sẽ dừng một tập lệnh chạy dài bất kể bạn làm gì - vì vậy hãy kiểm tra xem –