作者 邓超

1

正在显示 1 个修改的文件 包含 58 行增加58 行删除
... ... @@ -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秒
... ...