正在显示
1 个修改的文件
包含
7 行增加
和
24 行删除
| @@ -30,16 +30,8 @@ class SyncToEsCmd { | @@ -30,16 +30,8 @@ class SyncToEsCmd { | ||
| 30 | $es = (new Lib\Es\Es('hg_ai_emails')); | 30 | $es = (new Lib\Es\Es('hg_ai_emails')); |
| 31 | $db = db(); | 31 | $db = db(); |
| 32 | 32 | ||
| 33 | - $maxNum = 10000; // 最大执行数量 | ||
| 34 | - $minTime = 60; // 最小执行时间 秒 | ||
| 35 | - $maxTime = 1200; // 最大执行时间 秒 | ||
| 36 | - $runTime = time(); // 开始执行时间 | ||
| 37 | - while ($maxNum > 0){ | ||
| 38 | - // 验证最大执行时间 | ||
| 39 | - if(time() - $runTime > $maxTime){ | ||
| 40 | - _echo('超过进程最大执行时间'); | ||
| 41 | - break; | ||
| 42 | - } | 33 | + |
| 34 | + while (1){ | ||
| 43 | 35 | ||
| 44 | // 检查是否接收到信号 | 36 | // 检查是否接收到信号 |
| 45 | pcntl_signal_dispatch(); | 37 | pcntl_signal_dispatch(); |
| @@ -48,36 +40,27 @@ class SyncToEsCmd { | @@ -48,36 +40,27 @@ class SyncToEsCmd { | ||
| 48 | _echo('已退出进程'); | 40 | _echo('已退出进程'); |
| 49 | break; | 41 | break; |
| 50 | } | 42 | } |
| 51 | - $maxNum--; | 43 | + |
| 52 | $id = redis()->lPop('sync_to_es'); | 44 | $id = redis()->lPop('sync_to_es'); |
| 53 | if($id){ | 45 | if($id){ |
| 54 | - $data = $db->first(\Model\listsSql::first('`id` = '.$id)); | 46 | + $data = $db->throw()->first(\Model\listsSql::first('`id` = '.$id)); |
| 55 | if($data){ | 47 | if($data){ |
| 56 | // 设置 进程 是否在运行 | 48 | // 设置 进程 是否在运行 |
| 57 | - $data['is_auto']=$db->count('select count(*) from `lists_auto` where `list_id` = '.$data['id']) ? 1 : 0; | 49 | + $data['is_auto']=$db->throw()->count('select count(*) from `lists_auto` where `list_id` = '.$data['id']) ? 1 : 0; |
| 58 | 50 | ||
| 59 | $data = $this->getEsData($data); | 51 | $data = $this->getEsData($data); |
| 60 | $doc_id = $data['email_id'].'_'.$data['folder_id'].'_'.$data['uid']; | 52 | $doc_id = $data['email_id'].'_'.$data['folder_id'].'_'.$data['uid']; |
| 61 | 53 | ||
| 62 | $code = $es->save($doc_id,$data); | 54 | $code = $es->save($doc_id,$data); |
| 63 | if($code!==200){ | 55 | if($code!==200){ |
| 64 | - sleep(1); | ||
| 65 | - $code = $es->save($doc_id,$data); // 重试一次 | ||
| 66 | - } | ||
| 67 | - if($code!==200){ | 56 | + @file_put_contents(LOG_PATH.'/sync_es_fail.log',$id."\n",FILE_APPEND); |
| 57 | + redis()->rPush('sync_to_es',$id); | ||
| 68 | _echo('同步es: '.$doc_id.'===>'.$code); | 58 | _echo('同步es: '.$doc_id.'===>'.$code); |
| 69 | } | 59 | } |
| 70 | continue; | 60 | continue; |
| 71 | } | 61 | } |
| 72 | } | 62 | } |
| 73 | 63 | ||
| 74 | -// _echo('没有找到数据'); | ||
| 75 | - | ||
| 76 | - if(time() - $runTime > $minTime){ | ||
| 77 | - _echo('最小执行时间 退出'); | ||
| 78 | - break; | ||
| 79 | - } | ||
| 80 | - | ||
| 81 | sleep(1); | 64 | sleep(1); |
| 82 | } | 65 | } |
| 83 | 66 |
-
请 注册 或 登录 后发表评论