def queryQDState(request, id): login_user = helper.getLoginInfo(request) if not login_user: return JsonResponse({'msg': '请先登录', 'code': 101}) uid = login_user.get('id') # print(uid) if rd.hexists('qdArt', uid): # 一个用户抢两本书,查询最新的id的抢读状态,而不是之前抢读的状态 qdId = rd.hget('qdArt', uid) # 已抢的书id, qdId和id可能不一样 print(qdId) art = Art.objects.get(pk=id) print(art.title) return JsonResponse({ 'msg': '抢读成功', 'code': 200, 'art': { 'title': art.title, 'author': art.author, } }) if rd.hlen('qdArt') < 5: return JsonResponse({'msg': '正在抢读', 'code': 201}) else: return JsonResponse({'msg': '抢读失败', 'code': 300})
def qdTask(uid, aid): ''' 异步执行抢读功能 :param uid: 用户id :param aid: 文章id :return: ''' if rd.hlen('qdArticl') == 5: return '抢读失败' # 将用户uid和文章aid存入到hash中 # qdArticl rd.hset('qdArticl', uid, aid) return '抢读成功!'
def qdTask(uid, aid): ''' 异步执行抢读的功能 :param uid: 用户id :param aid: 文章id :return: ''' # 判断qdArt的hash项是否已达到最大值(5本书) if rd.hlen('qdArt') == 5: return '抢读失败' # 将用户id和aid存入到hash中 # qdArt可以被设计成:活动ID:adArt # 优化代码,避免抢多本 rd.hset('qdArt', uid, aid) return '抢读成功'
def qdTask(uid, aid): ''' 异步执行抢读功能 :param uid: 用户id :param aid: 文章id :return: ''' # 判断qdArt的hash项是否已达到最大值(5本书) if rd.hlen('qdArt') == 5: return '抢读失败' # 将用户id和aid存入到hash中 # qdArt 可以被设计成"活动ID:qdArt" # 优化代码,避免同一个人抢2两上的书 rd.hset('qdArt', uid, aid) return '抢读成功!'
def queryQDState(request, id): login_user = helper.getLoginInfo(request) if not login_user: return JsonResponse({'msg': '请先登录', 'code': 101}) uid = login_user.get('id') if rd.hexists('qdArticl', uid): # 一个用户抢两本书,查询最新的id的抢读状态 qdId = rd.hget('qdArticl', uid) articl = Articl.objects.get(pk=id) return JsonResponse({ 'msg': '抢读成功', 'code': 200, 'articl': { 'title': articl.title, 'author': articl.author, } }) if rd.hlen('qdArticl') < 5: return JsonResponse({'msg': '再试一次', 'code': 201}) else: return JsonResponse({'msg': '抢读失败', 'code': 300})