Đặt thời gian chờ cho phản hồi của trang web với curl


15

Tôi sử dụng một công cụ để theo dõi nếu trang web đang hoạt động.

Công cụ sử dụng curllệnh bên trong để lấy đầu ra.

Tuy nhiên, khi một trang web mất nhiều thời gian hơn để phản hồi, nó sẽ TIMEOUTxảy ra lỗi. Không có cách nào tôi có thể tăng thời gian chờ từ công cụ.

Có cách nào để đặt / sửa đổi khoảng thời gian chờ cho phản hồi từ trang web không?

Có bất kỳ biến có thể được sửa đổi?

Câu trả lời:


21

Bạn có thể sử dụng -mtùy chọn:

-m, --max-time <seconds>
              Maximum time in seconds that you allow the  whole  operation  to
              take.   This is useful for preventing your batch jobs from hang‐
              ing for hours due to slow networks or  links  going  down.   See
              also the --connect-timeout option.

              If this option is used several times, the last one will be used.

Điều này bao gồm thời gian để kết nối, nếu bạn muốn chỉ định riêng, hãy sử dụng --connect-timeouttùy chọn.


4

Thông thường, bạn sẽ làm điều này với một tùy chọn trên dòng lệnh khi curlđược gọi. Nhưng vì bạn không thể thay đổi điều này, nên có một cách khác - bạn có thể tạo tệp cấu hình cho curl. Trên unix, curltrước tiên sẽ tìm trong thư mục chính của người dùng đang chạy curl cho một tệp được gọi .curlrc. Tạo tập tin đó với dòng

connect-timeout = 10

để giảm thời gian chờ xuống còn 10 giây. Hoặc bạn có thể đặt thời gian tối đa cho toàn bộ thao tác, với tùy chọn max-time:

max-time = 10

Đó là một ý tưởng tuyệt vời..nhưng tôi cũng tự hỏi, nếu có bất kỳ biến env cụ thể nào cho điều đó hoặc một cái gì đó có thể được đặt từ phụ trợ như ulimit để tăng số lượng FD?
dùng80040

Tôi không thể tìm thấy bất cứ điều gì như thế trong trang người đàn ông.
Jenny D

4

curl có tùy chọn "kết nối thời gian chờ":

--connect-timeout <seconds>

Nếu "công cụ" của bạn là một tập lệnh, bạn có thể chỉnh sửa thủ công vào đó. Nhưng /unix//a/136126/77959 thậm chí còn tốt hơn - chỉnh sửa curl-config!


Ya..theo cấu hình là một ý tưởng sáng sủa..nhưng tôi cũng tự hỏi, nếu có bất kỳ biến env cụ thể nào cho điều đó hoặc một cái gì đó có thể được đặt từ phụ trợ như ulimit để tăng số lượng FD?
dùng80040

@ user80040 Không, không có. Không có phần mềm phụ trợ trực tuyến, thời gian chờ không phải là một loại giới hạn hệ thống. Curl thực hiện yêu cầu web và quyết định hết thời gian dựa trên cấu hình của nó.
Gilles 'SO- ngừng trở thành ác quỷ'

0

Từ Curlbạn có thể sử dụng tùy chọn này --connect-timeout: Thời gian tối đa tính bằng giây mà bạn cho phép kết nối với máy chủ. Điều này chỉ giới hạn giai đoạn kết nối, một khi curlđã kết nối tùy chọn này sẽ không được sử dụng nữa. Xem thêm --max-timetùy chọn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.