Tetapkan batas waktu untuk respons halaman web dengan curl

15

Saya menggunakan alat untuk memantau jika halaman web sudah aktif.

Alat menggunakan curlperintah secara internal untuk mengambil output.

Namun, ketika halaman web membutuhkan waktu lebih lama untuk merespons, itu menghasilkan kembali dengan TIMEOUTkesalahan. Tidak ada cara saya dapat menambah batas waktu dari alat.

Apakah ada cara untuk mengatur / memodifikasi periode batas waktu untuk respons dari halaman web?

Apakah ada variabel yang dapat dimodifikasi?

user80040
sumber

Jawaban:

23

Anda dapat menggunakan -mopsi:

-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.

Ini termasuk waktu untuk terhubung, jika Anda ingin menentukannya secara terpisah, gunakan --connect-timeoutopsi.

cuonglm
sumber
4

Biasanya Anda akan melakukan ini dengan opsi pada baris perintah ketika curldipanggil. Tetapi karena Anda tidak dapat mengubah ini, ada cara lain - Anda dapat membuat file konfigurasi curl. Pada unix, curlpertama-tama akan mencari di direktori home pengguna yang menjalankan curl untuk sebuah file bernama .curlrc. Buat file itu dengan garis

connect-timeout = 10

untuk mengurangi batas waktu hingga 10 detik. Atau Anda dapat mengatur waktu maksimal untuk seluruh operasi, dengan opsi max-time:

max-time = 10
Jenny D
sumber
Itu ide yang bagus..tapi saya juga bertanya-tanya, apakah ada variabel env tertentu untuk itu atau sesuatu yang dapat diatur dari backend seperti ulimit untuk meningkatkan jumlah FD?
user80040
Saya tidak dapat menemukan hal seperti itu di halaman manual.
Jenny D
4

curl memiliki opsi "connect timeout":

--connect-timeout <seconds>

Jika "alat" Anda adalah skrip, Anda dapat mengeditnya secara manual di sana. Tetapi /unix//a/148926/77959 bahkan lebih baik - edit curl-config!

flowtron
sumber
Ya..menambahkan konfigurasi adalah ide yang cemerlang..tapi saya juga bertanya-tanya, apakah ada variabel env tertentu untuk itu atau sesuatu yang dapat diatur dari backend seperti ulimit untuk meningkatkan jumlah FD?
user80040
@ user80040 Tidak, tidak ada. Tidak ada "backend", batas waktu bukanlah semacam batasan sistem. Curl melakukan permintaan web dan memutuskan untuk keluar berdasarkan konfigurasinya.
Gilles 'SANGAT berhenti menjadi jahat'
0

Dari CurlAnda dapat menggunakan opsi ini --connect-timeout: Waktu maksimum dalam detik yang Anda gunakan untuk mengambil koneksi ke server. Ini hanya membatasi fase koneksi, setelah curlterhubung opsi ini tidak lagi digunakan. Lihat juga --max-timeopsi.

Thushi
sumber