作者 李宇航

合并分支 'lyh-server' 到 'master'

Lyh server



查看合并请求 !3274
@@ -61,20 +61,26 @@ class SyncFile extends Command @@ -61,20 +61,26 @@ class SyncFile extends Command
61 $task_id = Redis::rpop($key); 61 $task_id = Redis::rpop($key);
62 if(empty($task_id)){ 62 if(empty($task_id)){
63 $lock_key = 'sync_file_lock'; 63 $lock_key = 'sync_file_lock';
64 - $lock_ttl = 60; // 锁时间大于当前 锁功能执行时间  
65 - // 尝试获取锁,非阻塞方式 64 + $lock_ttl = 60;
  65 + // 尝试获取锁
66 $lock = Redis::set($lock_key, 1, 'EX', $lock_ttl, 'NX'); 66 $lock = Redis::set($lock_key, 1, 'EX', $lock_ttl, 'NX');
67 if (empty($lock)){ 67 if (empty($lock)){
68 return $task_id; 68 return $task_id;
69 } 69 }
70 - $errorFileModel = new ErrorFile();  
71 - $lists = $errorFileModel->list(['status'=>0],'id',['id','path'],'asc',2000);//未同步成功的图片及文件  
72 - foreach ($lists as $v){  
73 - Redis::lpush($key, $v['id']);  
74 - $errorFileModel->edit(['status'=>1],['id'=>$v['id']]); 70 + try {
  71 + $errorFileModel = new ErrorFile();
  72 + $lists = $errorFileModel->list(['status'=>0],'id',['id','path'],'asc',2000);
  73 + foreach ($lists as $v){
  74 + Redis::lpush($key, $v['id']);
  75 + $errorFileModel->edit(['status'=>1],['id'=>$v['id']]);
  76 + }
  77 + $task_id = Redis::rpop($key);
  78 + } finally {
  79 + // 释放锁
  80 + Redis::del($lock_key);
75 } 81 }
76 - $task_id = Redis::rpop($key);  
77 } 82 }
  83 +
78 return $task_id; 84 return $task_id;
79 } 85 }
80 86