Contents

Jak ograniczyć czas żądania curl

Jeśli chodzi o wykonywanie żądań internetowych, czas ma kluczowe znaczenie. Nikt nie lubi czekać w nieskończoność na załadowanie strony lub odpowiedź serwera. Jeśli używasz curl do pobierania danych z sieci, z przyjemnością dowiesz się, że istnieją sposoby na ograniczenie czasu wykonywania żądań.

Aby zachować pewną kontrolę nad działaniami związanymi z pobieraniem danych, zaleca się nałożenie ograniczenia na czas trwania żądań cURL. Można to osiągnąć poprzez ustawienie określonego limitu czasu dla każdego pojedynczego żądania i zapewnienie, że nie przekroczy ono tego limitu. W ten sposób można skutecznie regulować ilość czasu spędzanego na pobieraniu danych za pośrednictwem cURL i uniknąć potencjalnych problemów wynikających z wydłużonego czasu przesyłania danych lub innych powiązanych kwestii.

Metoda 1: Korzystanie z opcji -max-time

Podczas wykonywania polecenia curl można użyć opcji -m lub --max-time , aby nałożyć rygorystyczne ograniczenie czasowe na żądanie. Ta konfiguracja pozwala na określenie maksymalnego czasu, w sekundach, przez który polecenie może działać przed nagłym zakończeniem i wygenerowaniem kodu wyjścia oznaczającego błąd przekroczenia limitu czasu (28).

 curl --max-timе [sеconds] [URL] 

Precyzja dziesiętna pozwala na określenie maksymalnej wartości z większą dokładnością niż w przypadku liczb całkowitych. Na przykład ustawienie maksymalnego limitu czasu na 0,3 sekundy odpowiada 300 milisekundom, podczas gdy maksymalny limit czasu wynoszący 5,46 sekundy odpowiada 5460 milisekundom. Podobnie, maksymalny limit czasu wynoszący 20 sekund można precyzyjnie zdefiniować jako 20 sekund.

Na przykład:

 curl -o test.md --max-time 30 https://github.com/test/file1 

/pl/images/using-maxtime-seconds-on-ubuntu.jpg

Ta instrukcja wysyła zapytanie do dostarczonego linku GitHub. Informacje o odpowiedzi są zapisywane w pliku test.md, a operacja jest kończona w ciągu maksymalnie trzydziestu sekund.

Metoda 2: Korzystanie z opcji -connect-timeout

Aby regulować czas, jaki cURL poświęca na próbę nawiązania połączenia z określonym hostem, użyj opcji --connect-timeout . Parametr ten narzuca limit całkowitego czasu przeznaczonego na przejście przez różne etapy wymagane do utworzenia udanego połączenia, które obejmuje następujące procesy:

Jeśli biblioteka libcurl nie zainicjuje połączenia w określonym czasie, wygeneruje kod błędu odpowiadający wystąpieniu limitu czasu (28).

 curl --connect-timeout [seconds] [URL] 

Na przykład:

 curl -o test.md --connect-time 20 https://github.com/test/file 

/pl/images/using-connect-timeout-seconds-on-ubuntu.jpg

Wykorzystując polecenie curl, implementacja ta pobiera zawartość osadzoną w podanym adresie URL i przechowuje ją jako plik o nazwie “test.md”. Dodatkowo narzuca ścisłe ograniczenie czasu trwania połączenia ze zdalnym serwerem do dwudziestu sekund.

Control Curl Requests for Swift Retrieval

W dzisiejszym szybko zmieniającym się środowisku, w którym produktywność i wydajność są najważniejsze, możliwość zarządzania czasem trwania żądań cURL może być bardzo korzystna. Korzystając z opcji “-connect-timeout” lub “-max-time”, można sprawować kontrolę nad operacjami pobierania danych. W rezultacie nie będzie już więcej zmarnowanych chwil, ponieważ usprawnione i dobrze uregulowane zapytania internetowe staną się nową normą.

Kiedy następnym razem staniesz w obliczu żmudnego oczekiwania na zakończenie żądania curl, rozważ zastosowanie technik opisanych w niniejszym dokumencie, aby przejąć kontrolę nad postępowaniem i nadać sens temu przyziemnemu zadaniu.