Commit 41e610b5 authored by 李小芳's avatar 李小芳

Merge branch 'add_redis_have_xiaf' into 'master'

Add redis have xiaf

See merge request !16
parents a5c991fe 6790eec8
...@@ -13,27 +13,30 @@ def click(card_info): ...@@ -13,27 +13,30 @@ def click(card_info):
today = datetime.datetime.now() today = datetime.datetime.now()
str_today = str(today.year) + str(today.month) + str(today.day) str_today = str(today.year) + str(today.month) + str(today.day)
key = "auto_vest_one_user_action_answer:" + str(card_info['card_id']) key = "auto_vest_action_click_answer:" + str(card_info['card_id'])
redis_data = redis_client.hget(key, str_today) redis_data = redis_client.hget(key, str_today)
if redis_data: if redis_data:
redis_data = json.loads(str(redis_data, encoding="utf8")) redis_data = json.loads(str(redis_data, encoding="utf8"))
click_num = int(redis_data.get("click")) + 1 have_pust_num = int(redis_data.get('click_have_pust_num', card_info['have_pust_num']))
redis_data['click'] = click_num need_pust_num = int(redis_data.get('click_need_pust_num', card_info['need_pust_num']))
if have_pust_num > need_pust_num:
logging.info("当前下发次数:%s已经达上限%s次,不能再下发:%s" % (have_pust_num, need_pust_num, card_info))
return True
else:
redis_data['click_have_pust_num'] = have_pust_num + 1
redis_client.hset(key, str_today, json.dumps(redis_data)) redis_client.hset(key, str_today, json.dumps(redis_data))
logging.info("当前下发次数:%s,上限是%s次,可以下发:%s" % (have_pust_num, need_pust_num, card_info))
else: else:
##代表还没有存储或者是已经过去一天了 需要清掉数据 从新的一天开始 redis_data = {"click_have_pust_num": card_info['have_pust_num'],
redis_client.delete(key) "click_need_pust_num": card_info['need_pust_num']}
redis_data = {"click": 1, "follow": 0, "comment": 0}
redis_client.hset(key, str_today, json.dumps(redis_data)) redis_client.hset(key, str_today, json.dumps(redis_data))
logging.info("get action:click,card_id:%s,redis_data:%s" % (card_info['card_id'], redis_data)) logging.info("get action:click,card_id:%s,redis_data:%s" % (card_info['card_id'], redis_data))
click_num = redis_data["click"]
if click_num > 12:
logging.info("今天已经消费到最大次数了,不能再消费")
return True, False
else:
rpc_invoker = get_rpc_invoker() rpc_invoker = get_rpc_invoker()
try: try:
status = rpc_invoker['qa/irrigation/create_answer_vote'](user_id=card_info['current_user_id'], status = rpc_invoker['qa/irrigation/create_answer_vote'](user_id=card_info['current_user_id'],
...@@ -42,15 +45,16 @@ def click(card_info): ...@@ -42,15 +45,16 @@ def click(card_info):
logging.info("get_card_info:%s,create_answer_vote:%s" % (card_info, status)) logging.info("get_card_info:%s,create_answer_vote:%s" % (card_info, status))
error = status.get('error', 1) error = status.get('error', 1)
if error == 0: if error == 0:
return True, True return True
else: else:
send_email_tome(str(card_info) + str(status)) send_email_tome(str(card_info) + str(status))
return False, True return False
except: except:
logging_exception() logging_exception()
logging.error("catch exception,err_msg:%s" % traceback.format_exc()) logging.error("catch exception,err_msg:%s" % traceback.format_exc())
return False, True return False
except: except:
logging_exception() logging_exception()
logging.error("catch exception,err_msg:%s" % traceback.format_exc()) logging.error("catch exception,err_msg:%s" % traceback.format_exc())
return False, False return False
...@@ -98,24 +98,7 @@ def comment(card_info): ...@@ -98,24 +98,7 @@ def comment(card_info):
return False return False
else: else:
today = datetime.datetime.now()
str_today = str(today.year) + str(today.month) + str(today.day)
key = "auto_vest_one_user_action_answer:" + str(card_info['card_id'])
redis_data = redis_client.hget(key, str_today)
if redis_data:
redis_data = json.loads(str(redis_data, encoding="utf8"))
click_num = int(redis_data.get("comment")) + 1
redis_data['comment'] = click_num
redis_client.hset(key, str_today, json.dumps(redis_data))
else:
redis_client.delete(key)
redis_data = {"click": 0, "follow": 0, "comment": 1}
redis_client.hset(key, str_today, json.dumps(redis_data))
logging.info("get action:comment,card_id:%s,redis_data:%s" % (card_info['card_id'], redis_data))
comment_num = redis_data["comment"]
###判断一下如果评论为空就重新拿一个 ###判断一下如果评论为空就重新拿一个
if not card_info['comment_content']: if not card_info['comment_content']:
comment = get_vest_userid_and_comment(need_comment_num=1, tag_names=card_info['tag_names'])[0] comment = get_vest_userid_and_comment(need_comment_num=1, tag_names=card_info['tag_names'])[0]
...@@ -129,20 +112,45 @@ def comment(card_info): ...@@ -129,20 +112,45 @@ def comment(card_info):
datas = json.loads(redis_data, encoding="utf-8") datas = json.loads(redis_data, encoding="utf-8")
if card_info['comment_content'] in datas: if card_info['comment_content'] in datas:
logging.info("当前评论和当前的用户已经存在了") logging.info("当前评论和当前的用户已经存在了")
pass return True
else: else:
datas.append(card_info['comment_content']) datas.append(card_info['comment_content'])
redis_client.hset(key, card_info['current_user_id'], json.dumps(datas)) redis_client.hset(key, card_info['current_user_id'], json.dumps(datas))
else: else:
conent = [card_info['comment_content']] conent = [card_info['comment_content']]
redis_client.hset(key, card_info['current_user_id'], json.dumps(conent)) redis_client.hset(key, card_info['current_user_id'], json.dumps(conent))
if comment_num > 12: ####当天下发的次数存起来,每次下发判断已经下发了多少个 如果当前下发相等不再下发
logging.info("今天已经消费到最大次数了,不能再消费") today = datetime.datetime.now()
return True, False str_today = str(today.year) + str(today.month) + str(today.day)
key = "auto_vest_action_comment_answer:" + str(card_info['card_id'])
redis_data = redis_client.hget(key, str_today)
if redis_data:
redis_data = json.loads(str(redis_data, encoding="utf8"))
have_pust_num = int(redis_data.get('comment_have_pust_num', card_info['have_pust_num']))
need_pust_num = int(redis_data.get('comment_need_pust_num', card_info['need_pust_num']))
if have_pust_num > need_pust_num:
logging.info("当前下发次数:%s已经达上限%s次,不能再下发:%s" % (have_pust_num, need_pust_num, card_info))
return True
else: else:
redis_data['comment_have_pust_num'] = have_pust_num + 1
redis_client.hset(key, str_today, json.dumps(redis_data))
logging.info("当前下发次数:%s,上限是%s次,可以下发:%s" % (have_pust_num, need_pust_num, card_info))
else:
redis_data = {"comment_have_pust_num": card_info['have_pust_num'],
"comment_need_pust_num": card_info['need_pust_num']}
redis_client.hset(key, str_today, json.dumps(redis_data))
logging.info("get action:comment,card_id:%s,redis_data:%s" % (card_info['card_id'], redis_data))
rpc_invoker = get_rpc_invoker() rpc_invoker = get_rpc_invoker()
try: try:
status = rpc_invoker['qa/irrigation/create_answer_reply'](user_id=card_info['current_user_id'], status = rpc_invoker['qa/irrigation/create_answer_reply'](user_id=card_info['current_user_id'],
answer_id=card_info['card_id'], answer_id=card_info['card_id'],
...@@ -151,14 +159,15 @@ def comment(card_info): ...@@ -151,14 +159,15 @@ def comment(card_info):
logging.info("get_card_info:%s,have_answer_reply:%s" % (card_info, status)) logging.info("get_card_info:%s,have_answer_reply:%s" % (card_info, status))
error = status.get('error', 1) error = status.get('error', 1)
if error == 0: if error == 0:
return True, True return True
else: else:
send_email_tome(str(card_info) + str(status)) send_email_tome(str(card_info) + str(status))
return False, True return False
except: except:
logging.error("catch exception,err_msg:%s" % traceback.format_exc()) logging.error("catch exception,err_msg:%s" % traceback.format_exc())
return False, True return False
except: except:
logging_exception() logging_exception()
logging.error("catch exception,err_msg:%s" % traceback.format_exc()) logging.error("catch exception,err_msg:%s" % traceback.format_exc())
return False, False return False
...@@ -12,26 +12,29 @@ def follow(card_info): ...@@ -12,26 +12,29 @@ def follow(card_info):
try: try:
today = datetime.datetime.now() today = datetime.datetime.now()
str_today = str(today.year) + str(today.month) + str(today.day) str_today = str(today.year) + str(today.month) + str(today.day)
key = "auto_vest_one_user_action_answer:" + str(card_info['card_id']) key = "auto_vest_action_follow_answer:" + str(card_info['card_id'])
redis_data = redis_client.hget(key, str_today) redis_data = redis_client.hget(key, str_today)
if redis_data: if redis_data:
redis_data = json.loads(str(redis_data, encoding="utf8")) redis_data = json.loads(str(redis_data, encoding="utf8"))
click_num = int(redis_data.get("follow")) + 1 have_pust_num = int(redis_data.get('follow_have_pust_num', card_info['have_pust_num']))
redis_data['follow'] = click_num need_pust_num = int(redis_data.get('follow_need_pust_num', card_info['need_pust_num']))
if have_pust_num > need_pust_num:
logging.info("当前下发次数:%s已经达上限%s次,不能再下发:%s" % (have_pust_num, need_pust_num, card_info))
return True
else:
redis_data['follow_have_pust_num'] = have_pust_num + 1
redis_client.hset(key, str_today, json.dumps(redis_data)) redis_client.hset(key, str_today, json.dumps(redis_data))
logging.info("当前下发次数:%s,上限是%s次,可以下发:%s" % (have_pust_num, need_pust_num, card_info))
else: else:
redis_client.delete(key) redis_data = {"follow_have_pust_num": card_info['have_pust_num'],
redis_data = {"click": 0, "follow": 1, "comment": 0} "follow_need_pust_num": card_info['need_pust_num']}
redis_client.hset(key, str_today, json.dumps(redis_data)) redis_client.hset(key, str_today, json.dumps(redis_data))
logging.info("get action:follow,card_id:%s,redis_data:%s" % (card_info['card_id'], redis_data)) logging.info("get action:follow,card_id:%s,redis_data:%s" % (card_info['card_id'], redis_data))
follow_num = redis_data["follow"]
if follow_num > 11:
logging.info("今天已经消费到最大次数了,不能再消费")
return True, False
else:
rpc_invoker = get_rpc_invoker() rpc_invoker = get_rpc_invoker()
try: try:
status = rpc_invoker['api/irrigation/user_add_follow'](follow_user_id=card_info['current_user_id'], status = rpc_invoker['api/irrigation/user_add_follow'](follow_user_id=card_info['current_user_id'],
...@@ -41,14 +44,15 @@ def follow(card_info): ...@@ -41,14 +44,15 @@ def follow(card_info):
error = status.get('error', 1) error = status.get('error', 1)
if error == 0: if error == 0:
return True, True return True
else: else:
send_email_tome(str(card_info) + str(status)) send_email_tome(str(card_info) + str(status))
return False, True return False
except: except:
logging.error("catch exception,err_msg:%s" % traceback.format_exc()) logging.error("catch exception,err_msg:%s" % traceback.format_exc())
return False, True return False
except: except:
logging_exception() logging_exception()
logging.error("catch exception,err_msg:%s" % traceback.format_exc()) logging.error("catch exception,err_msg:%s" % traceback.format_exc())
return False, False return False
...@@ -101,14 +101,13 @@ def kafka_consum(topic_name=None): ...@@ -101,14 +101,13 @@ def kafka_consum(topic_name=None):
if card_info['have_pust_num'] < card_info['need_pust_num'] and \ if card_info['have_pust_num'] < card_info['need_pust_num'] and \
push_time_date < nowtime: push_time_date < nowtime:
is_many = True
if action_type == "comment": # 在这里去调评论的接口 if action_type == "comment": # 在这里去调评论的接口
if 'have_comment_number' in card_info and \ if 'have_comment_number' in card_info and \
card_info['have_comment_number'] < 20: card_info['have_comment_number'] < 20:
card_info["have_comment_number"] += 1 card_info["have_comment_number"] += 1
logging.info("当前卡片ID:%s,comment1子函数消费处理耗时:%f" % ( logging.info("当前卡片ID:%s,comment1子函数消费处理耗时:%f" % (
card_info['card_id'], time.time() - begin)) card_info['card_id'], time.time() - begin))
is_success, is_many = comment(card_info) is_success = comment(card_info)
logging.info("comment [%s,%s,%s,%s],当前ID:%s,下发状状态:%s" % ( logging.info("comment [%s,%s,%s,%s],当前ID:%s,下发状状态:%s" % (
str(msg.topic), str(msg.partition), str(msg.offset), str(msg.topic), str(msg.partition), str(msg.offset),
str(msg.key), str(msg.key),
...@@ -116,35 +115,28 @@ def kafka_consum(topic_name=None): ...@@ -116,35 +115,28 @@ def kafka_consum(topic_name=None):
logging.info("当前卡片ID:%s,comment2子函数消费处理耗时:%f" % ( logging.info("当前卡片ID:%s,comment2子函数消费处理耗时:%f" % (
card_info['card_id'], time.time() - begin)) card_info['card_id'], time.time() - begin))
# 调完接口后需要再次去拿新的push_time的时间 # 调完接口后需要再次去拿新的push_time的时间
if is_many:
auto_comment_user(card_info) auto_comment_user(card_info)
elif action_type == "click": # 在这里去调点赞的接口 elif action_type == "click": # 在这里去调点赞的接口
is_many = True
if 'have_click_number' in card_info: if 'have_click_number' in card_info:
card_info["have_click_number"] += 1 card_info["have_click_number"] += 1
logging.info("当前卡片ID:%s,click1子函数消费处理耗时:%f" % ( logging.info("当前卡片ID:%s,click1子函数消费处理耗时:%f" % (
card_info["card_id"], time.time() - begin)) card_info["card_id"], time.time() - begin))
is_success, is_many = click(card_info) is_success = click(card_info)
logging.info("click [%s,%s,%s,%s],当前ID:%s,下发状状态:%s" % ( logging.info("click [%s,%s,%s,%s],当前ID:%s,下发状状态:%s" % (
str(msg.topic), str(msg.partition), str(msg.offset), str(msg.topic), str(msg.partition), str(msg.offset),
str(msg.key), str(msg.key),
card_info["card_id"], is_success)) card_info["card_id"], is_success))
logging.info("当前卡片ID:%s,click2子函数消费处理耗时:%f" % ( logging.info("当前卡片ID:%s,click2子函数消费处理耗时:%f" % (
card_info["card_id"], time.time() - begin)) card_info["card_id"], time.time() - begin))
if is_many:
auto_click_user(card_info) auto_click_user(card_info)
elif action_type == "follow": # 在这里去调关注的接口 elif action_type == "follow": # 在这里去调关注的接口
is_many = True
if 'have_follow_number' in card_info: if 'have_follow_number' in card_info:
card_info["have_follow_number"] += 1 card_info["have_follow_number"] += 1
logging.info("当前卡片ID:%s,follow1子函数消费处理耗时:%f" % ( logging.info("当前卡片ID:%s,follow1子函数消费处理耗时:%f" % (
card_info["card_id"], time.time() - begin)) card_info["card_id"], time.time() - begin))
is_success, is_many = follow(card_info) is_success = follow(card_info)
logging.info("当前卡片ID:%s,follow2子函数消费处理耗时:%f" % ( logging.info("当前卡片ID:%s,follow2子函数消费处理耗时:%f" % (
card_info["card_id"], time.time() - begin)) card_info["card_id"], time.time() - begin))
...@@ -152,17 +144,14 @@ def kafka_consum(topic_name=None): ...@@ -152,17 +144,14 @@ def kafka_consum(topic_name=None):
str(msg.topic), str(msg.partition), str(msg.offset), str(msg.topic), str(msg.partition), str(msg.offset),
str(msg.key), str(msg.key),
card_info["card_id"], is_success)) card_info["card_id"], is_success))
if is_many == True:
auto_follow_user(card_info) auto_follow_user(card_info)
else: # push_time时间未到 需要等待 else: # push_time时间未到 需要等待
logging.info("follow [%s,%s,%s,%s],push_time未到,需要等待" % ( logging.info("follow [%s,%s,%s,%s],push_time未到,需要等待" % (
str(msg.topic), str(msg.partition), str(msg.offset), str(msg.key))) str(msg.topic), str(msg.partition), str(msg.offset), str(msg.key)))
save_data_to_kafka(card_info) save_data_to_kafka(card_info)
pass pass
else: else:
logging.info("此条数据已经消费过了") logging.info("此条数据已经消费过了:%s" % card_info)
pass pass
logging.info("消费处理耗时:%f" % (time.time() - begin)) logging.info("消费处理耗时:%f" % (time.time() - begin))
except: except:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment