...
|
...
|
@@ -18,16 +18,24 @@ function start(){ |
|
|
$pm = new Process\Manager();
|
|
|
|
|
|
// 启动一个进程来管理定时
|
|
|
// $pm->add(function (Process\Pool $pool, int $workerId){
|
|
|
// _echo("定时进程({$workerId})启动成功");
|
|
|
//
|
|
|
//
|
|
|
// // 进行阻塞,否则定时器无法运行
|
|
|
// while (true){
|
|
|
// co::sleep(9999);
|
|
|
// }
|
|
|
//
|
|
|
// },true);
|
|
|
$pm->add(function (Process\Pool $pool, int $workerId){
|
|
|
_echo("定时进程({$workerId})启动成功");
|
|
|
|
|
|
\Swoole\Timer::tick(1000,function() use(&$pool){
|
|
|
|
|
|
if(redis()->getOriginData('email_sync_stop_num') >= WORKER_NUM+2 ){
|
|
|
$pool->shutdown();
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
// 进行阻塞,否则定时器无法运行
|
|
|
while (true){
|
|
|
co::sleep(9999);
|
|
|
}
|
|
|
|
|
|
},true);
|
|
|
|
|
|
|
|
|
// 协程配置
|
...
|
...
|
@@ -44,6 +52,11 @@ function start(){ |
|
|
|
|
|
// 循环阻塞
|
|
|
while (true){
|
|
|
|
|
|
if(redis()->get(SYNC_RUNNING_REDIS_KEY)=='stop'){
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
// 是否到了协程配置的数量上限
|
|
|
if($start_num < COROUTINE_MAX_NUM){
|
|
|
// 需要同步的id
|
...
|
...
|
@@ -99,8 +112,20 @@ function start(){ |
|
|
|
|
|
}
|
|
|
|
|
|
// 验证是否全部进程退出了
|
|
|
while (true){
|
|
|
if(!$start_num){
|
|
|
redis()->incr('email_sync_stop_num');
|
|
|
break;
|
|
|
}
|
|
|
co::sleep(0.5);
|
|
|
}
|
|
|
while (true){
|
|
|
co::sleep(99);
|
|
|
}
|
|
|
|
|
|
},true);
|
|
|
|
|
|
// 启动一个同步内容的进程
|
|
|
$pm->add(function (Process\Pool $pool, int $worker_id){
|
|
|
_echo("业务进程({$worker_id})启动成功,body");
|
...
|
...
|
@@ -109,8 +134,11 @@ function start(){ |
|
|
|
|
|
// 循环阻塞
|
|
|
while (true){
|
|
|
if(redis()->get(SYNC_RUNNING_REDIS_KEY)=='stop'){
|
|
|
break;
|
|
|
}
|
|
|
// 是否到了协程配置的数量上限
|
|
|
if($start_num < 50){
|
|
|
if($start_num < 500){
|
|
|
// 需要同步的id
|
|
|
$id = redis()->lPop('sync_email_body');
|
|
|
|
...
|
...
|
@@ -162,6 +190,17 @@ function start(){ |
|
|
|
|
|
}
|
|
|
|
|
|
// 验证是否全部进程退出了
|
|
|
while (true){
|
|
|
if(!$start_num){
|
|
|
redis()->incr('email_sync_stop_num');
|
|
|
break;
|
|
|
}
|
|
|
co::sleep(0.5);
|
|
|
}
|
|
|
while (true){
|
|
|
co::sleep(99);
|
|
|
}
|
|
|
|
|
|
},true);
|
|
|
|
...
|
...
|
|