| 
 | 
 | 
 <?php
 | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
 //error_reporting();
 | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
 require_once "../vendor/autoload.php";
 | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
 function getEsData($data){
 | 
| 
 | 
 | 
     if(!empty($data['id'])){
 | 
| 
 | 
 | 
         $data['uuid'] = $data['id'];
 | 
| 
 | 
 | 
         unset($data['id']);
 | 
| 
 | 
 | 
     }
 | 
| 
 | 
 | 
     if(!empty($data['from'])){
 | 
| 
 | 
 | 
         $data['from'] = [
 | 
| 
 | 
 | 
             'email' =>  $data['from'],
 | 
| 
 | 
 | 
             'name'  =>  $data['from_name']??''
 | 
| 
 | 
 | 
         ];
 | 
| 
 | 
 | 
         unset($data['from_name']);
 | 
| 
 | 
 | 
     }
 | 
| 
 | 
 | 
     unset($data['date']);
 | 
| 
 | 
 | 
     if(!empty($data['created_at'])){
 | 
| 
 | 
 | 
         $data['created_at'] = date('Y-m-d\TH:i:s',strtotime($data['created_at']));
 | 
| 
 | 
 | 
     }
 | 
| 
 | 
 | 
     if(!empty($data['updated_at'])){
 | 
| 
 | 
 | 
         $data['updated_at'] = date('Y-m-d\TH:i:s',strtotime($data['updated_at']));
 | 
| 
 | 
 | 
     }
 | 
| 
 | 
 | 
     $data['references'] = empty($data['references']) ? '' : $data['references'];
 | 
| 
 | 
 | 
     return $data;
 | 
| 
 | 
 | 
 }
 | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
 $db = db();
 | 
| 
 | 
 | 
 $es = (new Lib\Es\Es(''));
 | 
| 
 | 
 | 
 while (1){
 | 
| 
 | 
 | 
     $id = redis()->lPop('sync_to_es');
 | 
| 
 | 
 | 
     if($id){
 | 
| 
 | 
 | 
         $data = $db->first(\Model\listsSql::first('`id` = '.$id));
 | 
| 
 | 
 | 
         if($data){
 | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
             $data['is_auto']=$db->count('select count(*) from `lists_auto` where `list_id` = '.$data['uuid']) ? 1 : 0;
 | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
             $data = getEsData($data);
 | 
| 
 | 
 | 
             $doc_id = $data['email_id'].'_'.$data['folder_id'].'_'.$data['uid'];
 | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
             $code = $es->save($doc_id,$data);
 | 
| 
 | 
 | 
             if($code!=200){
 | 
| 
 | 
 | 
                 sleep(1);
 | 
| 
 | 
 | 
                 $es->save($doc_id,$data); // 重试一次
 | 
| 
 | 
 | 
             }
 | 
| 
 | 
 | 
         }
 | 
| 
 | 
 | 
     }
 | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
 }
 | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
  | 
...
 | 
...
 | 
 |