ตั้งค่าการหมดเวลาสำหรับการตอบกลับหน้าเว็บด้วย curl


15

ฉันใช้เครื่องมือเพื่อตรวจสอบว่าเว็บเพจกำลังทำงานอยู่หรือไม่

เครื่องมือใช้curlคำสั่งภายในเพื่อดึงเอาท์พุท

อย่างไรก็ตามเมื่อหน้าเว็บใช้เวลาในการตอบสนองนานขึ้นผลลัพธ์ก็จะกลับมาพร้อมกับTIMEOUTข้อผิดพลาด ไม่มีวิธีที่ฉันสามารถเพิ่มการหมดเวลาจากเครื่องมือ

มีวิธีใดบ้างที่จะตั้งค่า / แก้ไขระยะเวลาการหมดเวลาสำหรับการตอบกลับจากหน้าเว็บ

มีตัวแปรใดบ้างที่สามารถแก้ไขได้?

คำตอบ:


23

คุณสามารถใช้-mตัวเลือก:

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

ซึ่งรวมถึงเวลาในการเชื่อมต่อหากคุณต้องการระบุแยกต่างหากให้ใช้--connect-timeoutตัวเลือก


4

โดยปกติคุณจะทำสิ่งนี้ด้วยตัวเลือกในบรรทัดคำสั่งเมื่อcurlมีการเรียกใช้ แต่เนื่องจากคุณไม่สามารถเปลี่ยนแปลงสิ่งนี้ได้อีกวิธีหนึ่ง - คุณสามารถสร้างไฟล์curlกำหนดค่าได้ บนยูนิกซ์แรกจะมีลักษณะในไดเรกทอรีบ้านของผู้ใช้ที่ทำงานขดสำหรับไฟล์ที่เรียกว่าcurl .curlrcสร้างไฟล์นั้นด้วยบรรทัด

connect-timeout = 10

เพื่อลดการหมดเวลาเป็น 10 วินาที หรือคุณสามารถตั้งค่าเวลาสูงสุดสำหรับการดำเนินการทั้งหมดด้วยตัวเลือกmax-time:

max-time = 10

นั่นเป็นความคิดที่ดี .. แต่ฉันก็ยังสงสัยว่าถ้ามีตัวแปร env เฉพาะสำหรับสิ่งนั้นหรือบางสิ่งที่สามารถตั้งค่าได้จากแบ็กเอนด์เช่น ulimit เพื่อเพิ่มจำนวน FD?
user80040

ฉันไม่พบอะไรแบบนั้นในหน้า man
เจนนี่ D

4

curl มีตัวเลือก "เชื่อมต่อหมดเวลา":

--connect-timeout <seconds>

หาก "เครื่องมือ" ของคุณเป็นสคริปต์คุณสามารถแก้ไขด้วยตนเองได้ แต่/unix//a/148926/77959ดีกว่า - แก้ไข curl-config!


ใช่ .. การเพิ่ม config เป็นความคิดที่สดใส .. แต่ฉันก็ยังสงสัยว่าถ้ามีตัวแปร env เฉพาะสำหรับสิ่งนั้นหรืออะไรที่สามารถตั้งค่าได้จากแบ็กเอนด์อย่าง ulimit เพื่อเพิ่มจำนวน FD?
user80040

@ user80040 ไม่ไม่มี ไม่มี "แบ็กเอนด์" การหมดเวลาไม่ใช่ข้อ จำกัด ของระบบ Curl ทำตามคำขอของเว็บและตัดสินใจที่จะหมดเวลาตามการกำหนดค่า
Gilles 'หยุดความชั่วร้าย'

0

จากCurlคุณสามารถใช้ตัวเลือกนี้--connect-timeout: เวลาสูงสุดในไม่กี่วินาทีที่คุณอนุญาตให้เชื่อมต่อกับเซิร์ฟเวอร์ นี่เป็นเพียงการ จำกัด ระยะการเชื่อมต่อเมื่อcurlมีการเชื่อมต่อตัวเลือกนี้จะไม่มีประโยชน์อีกต่อไป ดูเพิ่มเติมที่--max-timeตัวเลือก

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.