Я хотел выполнить повторное использование curl в потоке, как здесь: PHP Оптимизация повторного использования Curl
, но когда я выполнил этот код:
//main code
$n=0;
$app = [];
$app_default = new WebRequest();
for ($n = 0; $n < 50; $n++){
$app[$n] = $app_default;
$app[$n] -> start();
}
//
//base thread class
class WebRequest extends Thread {
public function run() {
$this->executeREUSEGET();
}
private $ch = null;
function executeREUSEGET()
{
if ($this->ch == null) {
$this->ch = curl_init();
curl_setopt($this->ch, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($this->ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($this->ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
curl_setopt($this->ch, CURLOPT_ENCODING, '');
}
curl_setopt($this->ch, CURLOPT_URL, 'https://www.google.com/');
/* Result handling and processing */
$result = curl_exec($this->ch);
return $result;
}
}
, получите эти ошибки:
PHP Fatal error: Uncaught RuntimeException: the creator of WebRequest already started it in D:\req.php:71
как я могу решить эту проблему?
Я не хочу выполнять curl_unit () и curl_setopt () в каждом запросе в l oop .bcz, он замедляется ...
на самом деле я хочу отправить запрос curl через некоторое время l oop в pthread, а скорость bcz настолько важна для меня, что мне не нужно инициализировать curl в каждом запросе (url и curl_setopt являются stati c). Это снижает скорость.