public function makeids()
{
$index = input('param.index');//接收id用于半自动采集
$last = input('param.last');//接收id用于半自动采集
set_time_limit(3600);
$urlmake = [];
$ql = QueryList::getInstance();
for ($i = $index; $i <=$last; $i++) {
for ($j = $i . '000'; $j <= $i . '999'; $j++) {
if (ISCESHI){
$url = LOCALURL."/index.php/index/index/getlists/id/" . $i . '_' . $j;
}else{
$url = SERVICE."/index.php/index/index/getlists/id/" . $i . '_' . $j;
}
$urlmake [] = $url;
if(count($urlmake)>=5){
$ql->use(CurlMulti::class);
$ql->curlMulti($urlmake)
->success(function (QueryList $ql, CurlMulti $curl, $r) {
echo "Current url:{$r['info']['url']} \r\n";
// if (!empty($r)){
$this->getlists($r['info']['url']);
// }
unset($urlmake);
$ql->destruct();
})
->start([
// 最大并发数,这个值可以运行中动态改变。
'maxThread' => 1999,
// 触发curl错误或用户错误之前最大重试次数,超过次数$error指定的回调会被调用。
'maxTry' => 3,
// 全局CURLOPT_*
'opt' => [
CURLOPT_TIMEOUT => 3600,
// CURLOPT_CONNECTTIMEOUT => 1,
CURLOPT_CONNECTTIMEOUT => 0,
CURLOPT_RETURNTRANSFER => true
],
// 缓存选项很容易被理解,缓存使用url来识别。如果使用缓存类库不会访问网络而是直接返回缓存。
'cache' => ['enable' => false, 'compress' => false, 'dir' => null, 'expire' => 86400, 'verifyPost' => false]
]);
}
}
}
}