...
|
...
|
@@ -53,43 +53,43 @@ function start(){ |
|
|
co::sleep(1);
|
|
|
}else{
|
|
|
// 占用当前的id,占用2小时
|
|
|
redis()->add('just_sync_'.$id,time(),7200);
|
|
|
// 启动一个协程
|
|
|
go(function () use (&$start_num,$worker_id,$id){
|
|
|
$start_num++;
|
|
|
|
|
|
// 开始同步
|
|
|
try {
|
|
|
sync($id,$worker_id);
|
|
|
}catch (\Throwable $e){
|
|
|
// 重新发布同步任务,如果失败了是否重新发布
|
|
|
if(redis()->add('just_sync_'.$id,time(),7200)){
|
|
|
// 启动一个协程
|
|
|
go(function () use (&$start_num,$worker_id,$id){
|
|
|
$start_num++;
|
|
|
|
|
|
// 开始同步
|
|
|
try {
|
|
|
sync($id,$worker_id);
|
|
|
}catch (\Throwable $e){
|
|
|
// 重新发布同步任务,如果失败了是否重新发布
|
|
|
// redis()->rPush('sync_email_lists',$id);
|
|
|
|
|
|
// _echo($e->getMessage());
|
|
|
logs(
|
|
|
$e->getMessage().PHP_EOL.$e->getTraceAsString(),
|
|
|
LOG_PATH.'/'.$worker_id.'.log'
|
|
|
);
|
|
|
}
|
|
|
|
|
|
// 协程完成后执行的函数
|
|
|
co::defer(function () use (&$start_num,$worker_id,$id){
|
|
|
logs(
|
|
|
$e->getMessage().PHP_EOL.$e->getTraceAsString(),
|
|
|
LOG_PATH.'/'.$worker_id.'.log'
|
|
|
);
|
|
|
}
|
|
|
|
|
|
// 协程完成后执行的函数
|
|
|
co::defer(function () use (&$start_num,$worker_id,$id){
|
|
|
// _echo('正常关闭进程('.$worker_id.')下的协程('.co::getCid().')');
|
|
|
$start_num--;
|
|
|
// 消除占用
|
|
|
redis()->delete('just_sync_'.$id);
|
|
|
// 写入日志
|
|
|
\Lib\Log::getInstance()->write();
|
|
|
$start_num--;
|
|
|
// 消除占用
|
|
|
redis()->delete('just_sync_'.$id);
|
|
|
// 写入日志
|
|
|
\Lib\Log::getInstance()->write();
|
|
|
|
|
|
// 关闭数据库链接
|
|
|
db()->close();
|
|
|
// 关闭redis链接
|
|
|
redis()->close();
|
|
|
// 关闭数据库链接
|
|
|
db()->close();
|
|
|
// 关闭redis链接
|
|
|
redis()->close();
|
|
|
|
|
|
});
|
|
|
|
|
|
});
|
|
|
});
|
|
|
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
}else{
|
|
|
// 协程到了最大的数量,阻塞1秒
|
...
|
...
|
@@ -118,41 +118,41 @@ function start(){ |
|
|
co::sleep(1);
|
|
|
}else{
|
|
|
// 占用当前的id,占用2小时
|
|
|
redis()->add('just_sync_body_'.$id['lists_id'],time(),600);
|
|
|
// 启动一个协程
|
|
|
go(function () use (&$start_num,$worker_id,$id){
|
|
|
if(redis()->add('just_sync_body_'.$id['lists_id'],time(),600)){
|
|
|
// 启动一个协程
|
|
|
go(function () use (&$start_num,$worker_id,$id){
|
|
|
|
|
|
$start_num++;
|
|
|
$start_num++;
|
|
|
|
|
|
// 开始同步
|
|
|
try {
|
|
|
sync_body($id,$worker_id);
|
|
|
}catch (\Throwable $e){
|
|
|
// 开始同步
|
|
|
try {
|
|
|
sync_body($id,$worker_id);
|
|
|
}catch (\Throwable $e){
|
|
|
// _echo($e->getMessage());
|
|
|
logs(
|
|
|
$e->getMessage().PHP_EOL.$e->getTraceAsString(),
|
|
|
LOG_PATH.'/'.$worker_id.'.log'
|
|
|
);
|
|
|
}
|
|
|
|
|
|
// 协程完成后执行的函数
|
|
|
co::defer(function () use (&$start_num,$worker_id,$id){
|
|
|
logs(
|
|
|
$e->getMessage().PHP_EOL.$e->getTraceAsString(),
|
|
|
LOG_PATH.'/'.$worker_id.'.log'
|
|
|
);
|
|
|
}
|
|
|
|
|
|
// 协程完成后执行的函数
|
|
|
co::defer(function () use (&$start_num,$worker_id,$id){
|
|
|
// _echo('正常关闭进程('.$worker_id.')下的协程('.co::getCid().')');
|
|
|
$start_num--;
|
|
|
// 消除占用
|
|
|
redis()->delete('just_sync_body_'.$id['lists_id']);
|
|
|
// 写入日志
|
|
|
\Lib\Log::getInstance()->write();
|
|
|
$start_num--;
|
|
|
// 消除占用
|
|
|
redis()->delete('just_sync_body_'.$id['lists_id']);
|
|
|
// 写入日志
|
|
|
\Lib\Log::getInstance()->write();
|
|
|
|
|
|
// 关闭数据库链接
|
|
|
db()->close();
|
|
|
// 关闭redis链接
|
|
|
redis()->close();
|
|
|
// 关闭数据库链接
|
|
|
db()->close();
|
|
|
// 关闭redis链接
|
|
|
redis()->close();
|
|
|
|
|
|
});
|
|
|
|
|
|
});
|
|
|
});
|
|
|
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
}else{
|
|
|
// 协程到了最大的数量,阻塞1秒
|
...
|
...
|
|