Tôi đã sử dụng open_uri
để kéo xuống một đường dẫn ftp dưới dạng nguồn dữ liệu trong một thời gian, nhưng đột nhiên nhận thấy rằng tôi gần như liên tục "530 Rất tiếc, số lượng khách hàng được phép tối đa (95) đã được kết nối."Ổ cứng 'open_uri' có đóng đáng tin cậy của Ruby sau khi đọc hay không?
Tôi không chắc liệu mã của tôi có bị lỗi hoặc nếu ai đó đang truy cập máy chủ và tiếc là không có cách nào để tôi thực sự biết chắc chắn ai là người có lỗi.
Về cơ bản tôi đang đọc FTP URI với:
def self.read_uri(uri)
begin
uri = open(uri).read
uri == "Error" ? nil : uri
rescue OpenURI::HTTPError
nil
end
end
Tôi đoán rằng tôi cần phải thêm một số lỗi thêm xử lý mã ở đây ... Tôi muốn chắc chắn rằng tôi tận dụng mọi biện pháp phòng ngừa để đóng tất cả các kết nối để kết nối của tôi không phải là vấn đề trong câu hỏi, tuy nhiên tôi nghĩ rằng open_uri + đọc sẽ có biện pháp phòng ngừa này vs bằng cách sử dụng Net :: FTP phương pháp.
Điểm mấu chốt là tôi phải chắc chắn 100% rằng các kết nối này đang bị đóng và tôi không bằng cách nào đó có một kết nối mở bó nằm xung quanh.
Ai đó có thể vui lòng thông báo cho đúng cách sử dụng read_uri để kéo ftp với một đảm bảo rằng nó đóng kết nối? Hoặc tôi nên chuyển logic sang Net :: FTP có thể kiểm soát nhiều hơn về tình hình nếu open_uri không đủ mạnh?
Nếu tôi cần sử dụng phương pháp Net :: FTP, có phương pháp đọc mà tôi nên quen thuộc với vs kéo nó xuống vị trí tmp và sau đó đọc (như tôi muốn giữ nó trong một bộ đệm vs fs nếu có thể)?
Tôi không quen thuộc với 'read_uri' và đang gặp khó khăn đáng ngạc nhiên việc tìm kiếm kết quả tìm kiếm. Bạn có nhớ chia sẻ một đoạn mã yêu cầu và/hoặc sử dụng mã không? –
LOL, tôi xin lỗi. Tôi đã viết mã này một vài tháng trước và quên rằng tôi đã định nghĩa read_uri như sau (nhận ra tại thời điểm tôi cần thêm xử lý lỗi nhiều hơn: http://j.mp/tNHpmr – ylluminate
Giả sử rằng bạn không chạy các cửa sổ bạn có thể có thể thấy những gì đang xảy ra từ phía bạn với chạy "netstat" trong dấu nhắc lệnh – sunkencity