2010-11-19 7 views

Antwort

0

Wenn Sie unter Windows laufen lassen, können Sie die curl_multi verwenden:

// create cURL resource 
$ch = curl_init(); 

// set URL and other appropriate options 
curl_setopt($ch, CURLOPT_URL, "http://domain/path/to/script"); 
curl_setopt($ch, CURLOPT_HEADER, 0); 

//create the multiple cURL handle 
$mh = curl_multi_init(); 

//add the handle 
curl_multi_add_handle($mh,$ch); 

// execute the handle 
curl_multi_exec($mh,$running); 

Aber wenn Sie Linux laufen lassen, können Sie berappen:

$pid = pcntl_fork(); 
if ($pid == -1) { 
    die('could not fork'); 
} else if ($pid) { // mother process 
    // continue doing stuff here 
    echo 'Child labor '; 
    echo 'is acceptable '; 
    echo 'in programming'; 

    // wait for the child to finish 
    pcntl_wait($status); 
} else { // child process 
    // do big loop here 
    while (...) { 
     sleep(1000); 
    } 
} 
+0

das Skript für eine Arbeit Stunde innerhalb einer Schleife, wird diese Locke die Schleife auslösen und verlassen? Ich möchte nicht, dass die Verbindung länger als 1 Sekunde aufgebaut wird. –

+0

Well curl wird nicht getrennt, bevor das aufrufende Skript (das Schnellprogramm) beendet wird. Ihr aufgerufenes Skript (das langsam laufende Skript) wird jedoch möglicherweise von Apache beendet, wenn die Verbindung durch curl geschlossen wird. –

+1

Nicht wirklich, wenn set_time_limit auf Null gesetzt ist und ignore_user_abort auf true gesetzt ist. –

Verwandte Themen