Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Baby Reindeer - 2024

Hotii voteaza hoti?!

Camera video masina

Zilele emailului din gospodaria n...
 Best gaming laptop?

Humane (2024)

Recomandare casti 100-150 lei

Schimbare bec far VW Touran 1T3
 Plata impozit PF

Ce parere aveti de viteza/ modul ...

Love Lies Bleeding - 2024

Cum sterg mails din Promotions
 Vanzare cumparare fara transfer b...

Receptie ciudata, in functie de t...

Donez medicamente renale ptr pisica

Ce componenta e asta si ce ziceti...
 

Curl multi init

- - - - -
  • Please log in to reply
2 replies to this topic

#1
phpguru

phpguru

    Junior Member

  • Grup: Members
  • Posts: 127
  • Înscris: 12.07.2012
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
modoran

modoran

    Senior Member

  • Grup: Senior Members
  • Posts: 8,404
  • Înscris: 08.02.2011
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
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,239
  • Înscris: 24.02.2007
Exemplul din manual are un singur do/while: https://www.php.net/...-multi-exec.php

Anunturi

Chirurgia cranio-cerebrală minim invazivă 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

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate