作者 邓超

x

@@ -15,6 +15,8 @@ function start(){ @@ -15,6 +15,8 @@ function start(){
15 swoole_set_process_name('php-email-sync-list-check'); 15 swoole_set_process_name('php-email-sync-list-check');
16 16
17 $id = 0; 17 $id = 0;
  18 +
  19 + $goNum = 0;
18 // 循环阻塞 20 // 循环阻塞
19 while (true){ 21 while (true){
20 22
@@ -22,7 +24,8 @@ function start(){ @@ -22,7 +24,8 @@ function start(){
22 24
23 if($id){ 25 if($id){
24 // 启动一个协程 26 // 启动一个协程
25 - go(function () use ($id){ 27 + go(function () use ($id,&$goNum){
  28 + $goNum++;
26 // 开始同步 29 // 开始同步
27 try { 30 try {
28 sync($id); 31 sync($id);
@@ -30,15 +33,21 @@ function start(){ @@ -30,15 +33,21 @@ function start(){
30 echo $e->getMessage(); 33 echo $e->getMessage();
31 } 34 }
32 \Lib\Log::getInstance()->write(); 35 \Lib\Log::getInstance()->write();
  36 +
  37 + co::defer(function () use (&$goNum){
  38 + $goNum--;
  39 + });
33 }); 40 });
34 41
35 }else{ 42 }else{
36 - //每次都暂停1秒,防止同一时间启动太多的任务  
37 - co::sleep(300);  
38 break; 43 break;
39 } 44 }
40 } 45 }
41 46
  47 + while ($goNum>0){
  48 + co::sleep(1);
  49 + }
  50 + _echo('结束了');
42 } 51 }
43 52
44 /** 53 /**