美文网首页
iOS Redis 订阅、退订的正确姿势

iOS Redis 订阅、退订的正确姿势

作者: 梦醒不如初 | 来源:发表于2018-12-03 10:10 被阅读14次

    在使用 CocoaRedis 的时候,如果在退订频道的同时立即去重新订阅频道,会报异常在订阅的回调里。是因为退订还没完全成功的时候,就重新订阅导致的。

    iOS 的解决方案是将操作添加到一个串行队列同步执行,执行完退订操作完成之后,再重新订阅。小伙伴们可以留意下。

    安卓那边的解决方案也类似,只要保证退订操作执行完之后,再重新订阅即可。

      __weak typeof(self) weakSelf = self;
           
           dispatch_queue_t concurrentQueue = dispatch_queue_create("my.queue", DISPATCH_QUEUE_CONCURRENT);
    
           dispatch_sync(concurrentQueue, ^(){
               
               __strong typeof(weakSelf) strongSelf = weakSelf;
               
               //回调或者说是通知主线程刷新,
               [[strongSelf.redis unsubscribe] then:^id(id value) {
                   // Remove our observer and disconnect from Redis server.
                   [[NSNotificationCenter defaultCenter] removeObserver: strongSelf.myObject];
                   return [strongSelf.redis quit];
               }];
         
               [NSThread sleepForTimeInterval:1];
               
               [self setupRedisConted];
                
           });
    

    相关文章

      网友评论

          本文标题:iOS Redis 订阅、退订的正确姿势

          本文链接:https://www.haomeiwen.com/subject/mnbecqtx.html