作者 邓超

优化同步

... ... @@ -14,7 +14,6 @@ class SyncToEsCmd {
public $isStop = false;
static $num = 0;
public function handler(){
... ... @@ -28,6 +27,9 @@ class SyncToEsCmd {
// pcntl_signal(SIGHUP, $handler);
$es = es();
$db = db();
while (1){
// 检查是否接收到信号
... ... @@ -39,15 +41,8 @@ class SyncToEsCmd {
}
$id = redis()->lPop('sync_to_es');
if($id){
while(self::$num>=50){
co::sleep(0.5);
}
go(function () use ($id){
static::$num++;
$db = db();
$code = 500;
if($id){
$data = $db->first(\Model\listsSql::first('`id` = '.$id));
if($data){
// 设置 进程 是否在运行
... ... @@ -56,7 +51,7 @@ class SyncToEsCmd {
$data = $this->getEsData($data);
$doc_id = $data['email_id'].'_'.$data['folder_id'].'_'.$data['uid'];
$code = es()->save($doc_id,$data);
$code = $es->save($doc_id,$data);
}
if($code!==200){
... ... @@ -64,20 +59,9 @@ class SyncToEsCmd {
_echo('同步es: '.$doc_id.'===>'.$code);
}
$db = null;
co::defer(function (){
static::$num--;
db()->close();
\Lib\Log::getInstance()->write();
});
});
}else{
co::sleep(1);
}
sleep(1);
}
}
... ... @@ -108,12 +92,7 @@ class SyncToEsCmd {
}
\Lib\DbPool::$clientNumber = 60;
\Co\run(function (){
(new SyncToEsCmd())->handler();
});
(new SyncToEsCmd())->handler();
return 1;
... ...