[英]PHP Curl Reuse In Thread
i wanted perform curl reuse in thread like here: PHP Curl Reuse Optimization我想像这里一样在线程中执行 curl 重用: PHP Curl 重用优化
but when i executed this code:但是当我执行这段代码时:
//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;
}
}
get these errorrs:得到这些错误:
PHP Fatal error: Uncaught RuntimeException: the creator of WebRequest already started it in D:\req.php:71
how can i solve this?我该如何解决这个问题?
i dont want to execute curl_unit() & curl_setopt() in every request in loop.bcz it gets slow down...我不想在 loop.bcz 中的每个请求中执行 curl_unit() 和 curl_setopt() 它会变慢......
actually i wanna send curl request in a while loop in pthread and bcz speed is so important for me i dont need to initialize curl in every request(url and curl_setopt are static).it reduce speed.实际上,我想在 pthread 的 while 循环中发送 curl 请求,bcz 速度对我来说非常重要,我不需要在每个请求中初始化 curl(url 和 curl_setopt 是静态的)。它会降低速度。
i found this code but work only one time.it means only get site contents for once:((我找到了这段代码,但只工作了一次。这意味着只获取网站内容一次:((
$appa = new Atomic();
$ok = $appa -> inc();
//
$n=0;
$app = [];
//
for ($n = 0; $n < 50; $n++){
$app[$n] = new WebRequest($ok);
$app[$n] -> start();
}
///
class WebRequest extends Thread {
public $ch;
public function __construct($ch) {
$this->ch = $ch;
}
public function run() {
$result = curl_exec($this->ch);
echo $result;
}
}
///
class Atomic extends Threaded {
public function inc() {
$ch = curl_init();
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
curl_setopt($ch, CURLOPT_ENCODING, '');
curl_setopt($ch, CURLOPT_URL, 'http://www.example.com');
return $ch;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.