作者 邓超

es

  1 +<?php
  2 +
  3 +//error_reporting();
  4 +
  5 +require_once "../vendor/autoload.php";
  6 +
  7 +function getEsData($data){
  8 + if(!empty($data['id'])){
  9 + $data['uuid'] = $data['id'];
  10 + unset($data['id']);
  11 + }
  12 + if(!empty($data['from'])){
  13 + $data['from'] = [
  14 + 'email' => $data['from'],
  15 + 'name' => $data['from_name']??''
  16 + ];
  17 + unset($data['from_name']);
  18 + }
  19 + unset($data['date']);
  20 + if(!empty($data['created_at'])){
  21 + $data['created_at'] = date('Y-m-d\TH:i:s',strtotime($data['created_at']));
  22 + }
  23 + if(!empty($data['updated_at'])){
  24 + $data['updated_at'] = date('Y-m-d\TH:i:s',strtotime($data['updated_at']));
  25 + }
  26 + $data['references'] = empty($data['references']) ? '' : $data['references'];
  27 + return $data;
  28 +}
  29 +
  30 +$db = db();
  31 +$es = (new Lib\Es\Es(''));
  32 +while (1){
  33 + $id = redis()->lPop('sync_to_es');
  34 + if($id){
  35 + $data = $db->first(\Model\listsSql::first('`id` = '.$id));
  36 + if($data){
  37 +
  38 + $data['is_auto']=$db->count('select count(*) from `lists_auto` where `list_id` = '.$data['uuid']) ? 1 : 0;
  39 +
  40 + $data = getEsData($data);
  41 + $doc_id = $data['email_id'].'_'.$data['folder_id'].'_'.$data['uid'];
  42 +
  43 + $code = $es->save($doc_id,$data);
  44 + if($code!=200){
  45 + sleep(1);
  46 + $es->save($doc_id,$data); // 重试一次
  47 + }
  48 + }
  49 + }
  50 +
  51 +}
  52 +
  53 +
  54 +
  55 +
  56 +
  57 +
  58 +
  59 +
  60 +