作者 邓超

1

@@ -218,13 +218,14 @@ function create_coroutine(array &$cid,int &$isRunMaxCNum,$worker_id){ @@ -218,13 +218,14 @@ function create_coroutine(array &$cid,int &$isRunMaxCNum,$worker_id){
218 function sync($worker_id=0){ 218 function sync($worker_id=0){
219 // 需要同步的id 219 // 需要同步的id
220 $id = redis()->lPop('sync_email_lists'); 220 $id = redis()->lPop('sync_email_lists');
221 - _echo($worker_id.': 协程('.co::getCid().'):抢到 '.$id);  
222 221
223 if(!$id){ 222 if(!$id){
224 co::sleep(1); 223 co::sleep(1);
225 return -1; 224 return -1;
226 } 225 }
227 226
  227 + _echo($worker_id.': 协程('.co::getCid().'):抢到 '.$id);
  228 +
228 $email = db()->first(\Model\emailSql::first($id)); 229 $email = db()->first(\Model\emailSql::first($id));
229 if(!$email){ 230 if(!$email){
230 return 0; 231 return 0;
@@ -61,17 +61,21 @@ class Mail { @@ -61,17 +61,21 @@ class Mail {
61 $folder['name'] = explode('/',$folder['parseFolder']); 61 $folder['name'] = explode('/',$folder['parseFolder']);
62 $pid = 0; 62 $pid = 0;
63 foreach ($folder['id'] as $k=>$item){ 63 foreach ($folder['id'] as $k=>$item){
64 - // 插入到数据库  
65 - $pid = $db->insert(  
66 - folderSql::$table,  
67 - [  
68 - 'email_id' => $email_id,  
69 - 'folder' => $folder['name'][$k],  
70 - 'origin_folder' => $item,  
71 - 'pid' => $pid  
72 - ]  
73 - ,false  
74 - ); 64 + $data = [
  65 + 'email_id' => $email_id,
  66 + 'folder' => $folder['name'][$k],
  67 + 'origin_folder' => $item,
  68 + 'pid' => $pid
  69 + ];
  70 +
  71 + if(!$db->value(folderSql::has($data))){
  72 + // 插入到数据库
  73 + $pid = $db->insert(
  74 + folderSql::$table,
  75 + $data,
  76 + false
  77 + );
  78 + }
75 } 79 }
76 } 80 }
77 $db->commit(); 81 $db->commit();
@@ -25,6 +25,17 @@ class folderSql { @@ -25,6 +25,17 @@ class folderSql {
25 } 25 }
26 26
27 27
  28 + /**
  29 + * 是否存在,存在则返回 id
  30 + * @param $where
  31 + * @return string
  32 + * @author:dc
  33 + * @time 2023/2/18 11:48
  34 + */
  35 + public static function has($where){
  36 + return "select `id` from `".self::$table."` where ".dbWhere($where);
  37 + }
  38 +
28 39
29 40
30 41