Често е по-добре да се провалите бързо, отколкото да продължите да чакате с надеждата за успех.
Когато става въпрос за правене на уеб заявки, времето е от решаващо значение. Никой не обича да чака безкрайно уеб страницата да се зареди или сървърът да отговори. Ако използвате curl за извличане на данни от мрежата, ще се радвате да знаете, че има начини да поставите ограничение на времето, което отнемат вашите заявки.
Ето как да ограничите времето за заявка на curl, за да сте сигурни, че контролирате операциите си за извличане на данни.
Метод 1: Използване на опцията --max-time
Докато стартиране на командата curl, можете да посочите -м или --максимално време опция за задаване на строг срок на заявката. Тази опция ви позволява да посочите максималното време в секунди, което сте готови да оставите на командата, преди да излезе с код за грешка при изчакване (28):
curl --max-timе [sеconds] [URL]
Можете да определите максимума с десетична точност, където 0,3 означава 300 милисекунди, 5,46 е равно на 5460 милисекунди, а 20 означава 20 секунди.
Например:
curl -o test.md --max-time 30 https://github.com/test/file1
Тази команда изпраща заявка до предоставения URL адрес на GitHub. Той ще запази данните за отговора като test.md и ще завърши в рамките на максимално време от 30 секунди.
Метод 2: Използване на опцията --connect-timeout
За да контролирате времето, което curl прекарва в опит да се свърже с хост, използвайте --изчакване за свързване опция. Това задава максимален срок за curl да завърши стъпките за свързване, включително DNS търсене и последващи TCP, TLS или QUIC ръкостискания.
Ако curl не може да установи връзка в рамките на зададения от вас период от време, той ще излезе с код за грешка при изчакване (28):
curl --connect-timeout [seconds] [URL]
Например:
curl -o test.md --connect-time 20 https://github.com/test/file
Тук командата curl извлича файла, посочен в URL адреса, записва го като test.md и налага ограничение от 20 секунди за установяване на връзка със сървъра.
Контролирайте Curl заявките за бързо извличане
В свят, в който времето е пари, да можеш да ограничиш времето за заявка за къдрици е полезно умение. Независимо дали изберете опцията --connect-timeout или --max-time, вие поемате отговорността за вашите задачи за извличане на данни. И така, няма повече безкрайно чакане, време е да направите ефективни, контролирани уеб заявки.
Следващия път, когато се окажете, че чакате заявка за curl да приключи, запомнете тези методи и накарайте curl да работи според вашите условия.