Chirurgia cranio-cerebrală minim invazivă
Tehnicile minim invazive impun utilizarea unei tehnologii ultramoderne. Endoscoapele operatorii de diverse tipuri, microscopul operator dedicat, neuronavigația, neuroelectrofiziologia, tehnicile avansate de anestezie, chirurgia cu pacientul treaz reprezintă armamentarium fără de care neurochirurgia prin "gaura cheii" nu ar fi posibilă. Folosind tehnicile de mai sus, tratăm un spectru larg de patologii cranio-cerebrale. www.neurohope.ro |
Curl multi init
Last Updated: Jul 23 2023 21:37, Started by
phpguru
, Jul 23 2023 19:57
·
2
#1
Posted 23 July 2023 - 19:57
Codul de mai jos consuma resurse cpu. M-am documentat si pe diferite site-uri, usleep cica ar calma problema.
$urls = ["https://wlog.ro/stiri.php" => "wlog.txt", "https://forum.softpedia.com/rss/forums/1-forumul-softpedia-rss-global/" => "softpedia.txt"] ; $curls = [] ; $curl_multi = curl_multi_init() ; foreach ( $urls as $from => $to ) { $curl[$from] = curl_init() ; curl_setopt( $curl[$from], CURLOPT_URL, $from ) ; curl_setopt( $curl[$from], CURLOPT_REFERER, "https://www.google.com" ) ; curl_setopt( $curl[$from], CURLOPT_AUTOREFERER, true ) ; curl_setopt( $curl[$from], CURLOPT_USERAGENT, "Mozilla/5.0" ) ; curl_setopt( $curl[$from], CURLOPT_HEADER, false ) ; curl_setopt( $curl[$from], CURLOPT_RETURNTRANSFER, true ) ; curl_setopt( $curl[$from], CURLOPT_FOLLOWLOCATION, true ) ; curl_setopt( $curl[$from], CURLOPT_TIMEOUT, 20 ) ; curl_setopt( $curl[$from], CURLOPT_CONNECTTIMEOUT, 15 ) ; curl_setopt( $curl[$from], CURLOPT_SSL_VERIFYPEER, false ) ; curl_multi_add_handle( $curl_multi, $curl[$from] ) ; $curls[] = $curl[$from] ; } $active = null ; do { $status = curl_multi_exec( $curl_multi, $active ) ; } while ( $status == CURLM_CALL_MULTI_PERFORM ) ; while ( $active && $status == CURLM_OK ) { if ( curl_multi_select( $curl_multi ) == -1 ) { continue ; // usleep(1); } do { $status = curl_multi_exec( $curl_multi, $active ) ; } while ( $status == CURLM_CALL_MULTI_PERFORM ) ; } foreach ( $urls as $from => $to ) { $magic[$from] = curl_multi_getcontent( $curl[$from] ) ; curl_multi_remove_handle( $curl_multi, $curl[$from] ) ; curl_close( $curl[$from] ) ; $file = fopen( $to, "w" ) or die( "Eroare: fisierul nu poate fi deschis." ) ; fputs( $file, $magic[$from] ) ; fclose( $file ) ; } curl_multi_close( $curl_multi ) ; Am anulat continue; si am adaugat usleep(1) sau usleep(100) sau usleep(1000) sau usleep(10000), in zadar. E codul scris gresit sau imi scapa ceva? Edited by phpguru, 23 July 2023 - 19:58. |
#2
Posted 23 July 2023 - 20:19
Ai neaparat nevoie sa rulezi alea simultan ? Nu poti sa schimbi codul cu cate o conexiune pe rand ? Ar fi mai simplu si nu ar consuma resurse.
Dar alea ar trebui sa le rulezi odata la un anumit timp in mod independent, nu la fiecare accesare a paginii sa le preiei iar ... file_get_contents face exact ce vrei tu din 2 linii de cod ... Edited by modoran, 23 July 2023 - 20:20. |
#3
Posted 23 July 2023 - 21:37
Exemplul din manual are un singur do/while: https://www.php.net/...-multi-exec.php
|
Anunturi
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users