PHP站群

算法架构

分享站群架构功能算法,实现的原理
PHP站群 >  算法架构

算法架构

在同一秒多个百度蜘蛛并发访问站群内某个url如何保证随机抽取准备锁定关键词的唯一性

2025-01-01 11:53:00算法架构
摘要:百度蜘蛛有时候访问一个随机页面的刹那,另外一个蜘蛛也来访问了,页面的关键词如果第一次访问没锁定完成,就被第二个抢了导致不唯一怎么办。

在同一秒多个百度蜘蛛并发访问站群内某个url如何保证随机抽取准备锁定关键词的唯一性

一般情况下百度来蜘蛛都是多个蜘蛛一起来,多个不同ip的蜘蛛来多次,正常情况都是间隔几秒。有的时候就是同时在1秒内来,程序锁定关键词与url的对应关系就要用到事务锁定。让第一个蜘蛛来的时候开启锁定,等待完成再释放,第二个蜘蛛直接看到第一个蜘蛛访问锁定的缓存信息,保证seo的唯一性。

以下是关键词锁定的核心模块。

// echo 'create cache';
if($is_spider || $is_moni_spider|| $is_ad==0){ //百度蜘蛛或者是关闭广告

$k_setkid='setkid_'.md5($url_md5);
$v_setkid=time();

$pika2->watch($k_setkid);
$pika2->multi();

if(count($arr_types)>0){
$qz=roll($arr_types_quanzhong);//根据权重随机取一个
$site_type=$qz;//很重要
}
// echo 'lock setkid ok!';

$kid=get_kid_sj(); 
$k_type=$qz;
}else{ 

$pika2->set($k_setkid, $v_setkid);
$res = $pika2->exec();
if ($res) {
// 成功...
// echo 'success:';

}else{
// 失败...

// 设置HTTP状态码为503
header('HTTP/1.1 503 Service Temporarily Unavailable1');
// 记录错误信息
souji($is_souji,2,'zhizhu_wait2.com',$url,$ip,'zhizhu wait','',0);
exit();

}

}
}

发表评论