正在显示
1 个修改的文件
包含
10 行增加
和
4 行删除
| @@ -15,7 +15,7 @@ function start(){ | @@ -15,7 +15,7 @@ function start(){ | ||
| 15 | $pm = new Process\Manager(); | 15 | $pm = new Process\Manager(); |
| 16 | 16 | ||
| 17 | // 启动业务进程 | 17 | // 启动业务进程 |
| 18 | - $pm->addBatch(15,function (Process\Pool $pool, int $worker_id){ | 18 | + $pm->addBatch(30,function (Process\Pool $pool, int $worker_id){ |
| 19 | 19 | ||
| 20 | swoole_set_process_name('php-email-sync-list-'.$worker_id); | 20 | swoole_set_process_name('php-email-sync-list-'.$worker_id); |
| 21 | 21 | ||
| @@ -23,6 +23,7 @@ function start(){ | @@ -23,6 +23,7 @@ function start(){ | ||
| 23 | _echo("业务进程({$worker_id})启动成功"); | 23 | _echo("业务进程({$worker_id})启动成功"); |
| 24 | 24 | ||
| 25 | $run_timer = time(); | 25 | $run_timer = time(); |
| 26 | + $goNum = 0; | ||
| 26 | // 循环阻塞 | 27 | // 循环阻塞 |
| 27 | while (true){ | 28 | while (true){ |
| 28 | 29 | ||
| @@ -38,8 +39,8 @@ function start(){ | @@ -38,8 +39,8 @@ function start(){ | ||
| 38 | // 占用当前的id,占用2小时 | 39 | // 占用当前的id,占用2小时 |
| 39 | if(redis()->add('just_sync_'.$id,time(),600)){ | 40 | if(redis()->add('just_sync_'.$id,time(),600)){ |
| 40 | // 启动一个协程 | 41 | // 启动一个协程 |
| 41 | - go(function () use ($id){ | ||
| 42 | - | 42 | + go(function () use ($id,&$goNum){ |
| 43 | + $goNum++; | ||
| 43 | try{ | 44 | try{ |
| 44 | // 开始同步 | 45 | // 开始同步 |
| 45 | (new \Service\SyncMail($id))->sync(); | 46 | (new \Service\SyncMail($id))->sync(); |
| @@ -49,7 +50,8 @@ function start(){ | @@ -49,7 +50,8 @@ function start(){ | ||
| 49 | 50 | ||
| 50 | 51 | ||
| 51 | // 协程完成后执行的函数 | 52 | // 协程完成后执行的函数 |
| 52 | - co::defer(function () use ($id){ | 53 | + co::defer(function () use ($id,&$goNum){ |
| 54 | + $goNum--; | ||
| 53 | // 30秒后 消除占用 | 55 | // 30秒后 消除占用 |
| 54 | redis()->expire('just_sync_'.$id,60); | 56 | redis()->expire('just_sync_'.$id,60); |
| 55 | // 写入日志 | 57 | // 写入日志 |
| @@ -57,6 +59,10 @@ function start(){ | @@ -57,6 +59,10 @@ function start(){ | ||
| 57 | }); | 59 | }); |
| 58 | 60 | ||
| 59 | }); | 61 | }); |
| 62 | + while ($goNum == 0){ | ||
| 63 | + co::sleep(0.5); | ||
| 64 | + break; | ||
| 65 | + } | ||
| 60 | } | 66 | } |
| 61 | }else{ | 67 | }else{ |
| 62 | co::sleep(1); | 68 | co::sleep(1); |
-
请 注册 或 登录 后发表评论