Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
V
vest
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
2
Merge Requests
2
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
rank
vest
Commits
41e610b5
Commit
41e610b5
authored
Jan 09, 2020
by
李小芳
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'add_redis_have_xiaf' into 'master'
Add redis have xiaf See merge request
!16
parents
a5c991fe
6790eec8
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
119 additions
and
113 deletions
+119
-113
click_fun.py
click/views/click_fun.py
+33
-29
comment_fun.py
comment/views/comment_fun.py
+47
-38
follow_fun.py
follow/views/follow_fun.py
+32
-28
consum.py
moment/views/consum.py
+7
-18
No files found.
click/views/click_fun.py
View file @
41e610b5
...
...
@@ -13,44 +13,48 @@ def click(card_info):
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'
])
key
=
"auto_vest_
action_click
_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
(
"click"
))
+
1
redis_data
[
'click'
]
=
click_num
redis_client
.
hset
(
key
,
str_today
,
json
.
dumps
(
redis_data
))
have_pust_num
=
int
(
redis_data
.
get
(
'click_have_pust_num'
,
card_info
[
'have_pust_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
))
logging
.
info
(
"当前下发次数:
%
s,上限是
%
s次,可以下发:
%
s"
%
(
have_pust_num
,
need_pust_num
,
card_info
))
else
:
##代表还没有存储或者是已经过去一天了 需要清掉数据 从新的一天开始
redis_client
.
delete
(
key
)
redis_data
=
{
"click"
:
1
,
"follow"
:
0
,
"comment"
:
0
}
redis_data
=
{
"click_have_pust_num"
:
card_info
[
'have_pust_num'
],
"click_need_pust_num"
:
card_info
[
'need_pust_num'
]}
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
))
click_num
=
redis_data
[
"click"
]
if
click_num
>
12
:
logging
.
info
(
"今天已经消费到最大次数了,不能再消费"
)
return
True
,
False
else
:
rpc_invoker
=
get_rpc_invoker
()
try
:
status
=
rpc_invoker
[
'qa/irrigation/create_answer_vote'
](
user_id
=
card_info
[
'current_user_id'
],
answer_id
=
card_info
[
'card_id'
])
.
unwrap
()
logging
.
info
(
"get_card_info:
%
s,create_answer_vote:
%
s"
%
(
card_info
,
status
))
error
=
status
.
get
(
'error'
,
1
)
if
error
==
0
:
return
True
,
True
else
:
send_email_tome
(
str
(
card_info
)
+
str
(
status
))
return
False
,
True
except
:
logging_exception
()
logging
.
error
(
"catch exception,err_msg:
%
s"
%
traceback
.
format_exc
())
return
False
,
True
rpc_invoker
=
get_rpc_invoker
()
try
:
status
=
rpc_invoker
[
'qa/irrigation/create_answer_vote'
](
user_id
=
card_info
[
'current_user_id'
],
answer_id
=
card_info
[
'card_id'
])
.
unwrap
()
logging
.
info
(
"get_card_info:
%
s,create_answer_vote:
%
s"
%
(
card_info
,
status
))
error
=
status
.
get
(
'error'
,
1
)
if
error
==
0
:
return
True
else
:
send_email_tome
(
str
(
card_info
)
+
str
(
status
))
return
False
except
:
logging_exception
()
logging
.
error
(
"catch exception,err_msg:
%
s"
%
traceback
.
format_exc
())
return
False
except
:
logging_exception
()
logging
.
error
(
"catch exception,err_msg:
%
s"
%
traceback
.
format_exc
())
return
False
,
False
return
False
comment/views/comment_fun.py
View file @
41e610b5
...
...
@@ -98,24 +98,7 @@ def comment(card_info):
return
False
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'
]:
comment
=
get_vest_userid_and_comment
(
need_comment_num
=
1
,
tag_names
=
card_info
[
'tag_names'
])[
0
]
...
...
@@ -129,36 +112,62 @@ def comment(card_info):
datas
=
json
.
loads
(
redis_data
,
encoding
=
"utf-8"
)
if
card_info
[
'comment_content'
]
in
datas
:
logging
.
info
(
"当前评论和当前的用户已经存在了"
)
pass
return
True
else
:
datas
.
append
(
card_info
[
'comment_content'
])
redis_client
.
hset
(
key
,
card_info
[
'current_user_id'
],
json
.
dumps
(
datas
))
else
:
conent
=
[
card_info
[
'comment_content'
]]
redis_client
.
hset
(
key
,
card_info
[
'current_user_id'
],
json
.
dumps
(
conent
))
if
comment_num
>
12
:
logging
.
info
(
"今天已经消费到最大次数了,不能再消费"
)
return
True
,
False
####当天下发的次数存起来,每次下发判断已经下发了多少个 如果当前下发相等不再下发
today
=
datetime
.
datetime
.
now
()
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
:
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
:
rpc_invoker
=
get_rpc_invoker
()
try
:
status
=
rpc_invoker
[
'qa/irrigation/create_answer_reply'
](
user_id
=
card_info
[
'current_user_id'
],
answer_id
=
card_info
[
'card_id'
],
content
=
card_info
[
'comment_content'
])
.
unwrap
()
logging
.
info
(
"get_card_info:
%
s,have_answer_reply:
%
s"
%
(
card_info
,
status
))
error
=
status
.
get
(
'error'
,
1
)
if
error
==
0
:
return
True
,
True
else
:
send_email_tome
(
str
(
card_info
)
+
str
(
status
))
return
False
,
True
except
:
logging
.
error
(
"catch exception,err_msg:
%
s"
%
traceback
.
format_exc
())
return
False
,
True
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
()
try
:
status
=
rpc_invoker
[
'qa/irrigation/create_answer_reply'
](
user_id
=
card_info
[
'current_user_id'
],
answer_id
=
card_info
[
'card_id'
],
content
=
card_info
[
'comment_content'
])
.
unwrap
()
logging
.
info
(
"get_card_info:
%
s,have_answer_reply:
%
s"
%
(
card_info
,
status
))
error
=
status
.
get
(
'error'
,
1
)
if
error
==
0
:
return
True
else
:
send_email_tome
(
str
(
card_info
)
+
str
(
status
))
return
False
except
:
logging
.
error
(
"catch exception,err_msg:
%
s"
%
traceback
.
format_exc
())
return
False
except
:
logging_exception
()
logging
.
error
(
"catch exception,err_msg:
%
s"
%
traceback
.
format_exc
())
return
False
,
False
return
False
follow/views/follow_fun.py
View file @
41e610b5
...
...
@@ -12,43 +12,47 @@ def follow(card_info):
try
:
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'
])
key
=
"auto_vest_
action_follow
_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
(
"follow"
))
+
1
redis_data
[
'follow'
]
=
click_num
redis_client
.
hset
(
key
,
str_today
,
json
.
dumps
(
redis_data
))
have_pust_num
=
int
(
redis_data
.
get
(
'follow_have_pust_num'
,
card_info
[
'have_pust_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
))
logging
.
info
(
"当前下发次数:
%
s,上限是
%
s次,可以下发:
%
s"
%
(
have_pust_num
,
need_pust_num
,
card_info
))
else
:
redis_client
.
delete
(
key
)
redis_data
=
{
"click"
:
0
,
"follow"
:
1
,
"comment"
:
0
}
redis_data
=
{
"follow_have_pust_num"
:
card_info
[
'have_pust_num'
],
"follow_need_pust_num"
:
card_info
[
'need_pust_num'
]}
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
))
follow_num
=
redis_data
[
"follow"
]
rpc_invoker
=
get_rpc_invoker
()
try
:
status
=
rpc_invoker
[
'api/irrigation/user_add_follow'
](
follow_user_id
=
card_info
[
'current_user_id'
],
followed_user_id
=
card_info
[
'card_user_id'
])
.
unwrap
()
logging
.
info
(
"get_card_info:
%
s,user_add_follow:
%
s"
%
(
card_info
,
status
))
if
follow_num
>
11
:
logging
.
info
(
"今天已经消费到最大次数了,不能再消费"
)
return
True
,
False
error
=
status
.
get
(
'error'
,
1
)
if
error
==
0
:
return
True
else
:
send_email_tome
(
str
(
card_info
)
+
str
(
status
))
return
False
except
:
logging
.
error
(
"catch exception,err_msg:
%
s"
%
traceback
.
format_exc
())
return
False
else
:
rpc_invoker
=
get_rpc_invoker
()
try
:
status
=
rpc_invoker
[
'api/irrigation/user_add_follow'
](
follow_user_id
=
card_info
[
'current_user_id'
],
followed_user_id
=
card_info
[
'card_user_id'
])
.
unwrap
()
logging
.
info
(
"get_card_info:
%
s,user_add_follow:
%
s"
%
(
card_info
,
status
))
error
=
status
.
get
(
'error'
,
1
)
if
error
==
0
:
return
True
,
True
else
:
send_email_tome
(
str
(
card_info
)
+
str
(
status
))
return
False
,
True
except
:
logging
.
error
(
"catch exception,err_msg:
%
s"
%
traceback
.
format_exc
())
return
False
,
True
except
:
logging_exception
()
logging
.
error
(
"catch exception,err_msg:
%
s"
%
traceback
.
format_exc
())
return
False
,
False
return
False
moment/views/consum.py
View file @
41e610b5
...
...
@@ -101,14 +101,13 @@ def kafka_consum(topic_name=None):
if
card_info
[
'have_pust_num'
]
<
card_info
[
'need_pust_num'
]
and
\
push_time_date
<
nowtime
:
is_many
=
True
if
action_type
==
"comment"
:
# 在这里去调评论的接口
if
'have_comment_number'
in
card_info
and
\
card_info
[
'have_comment_number'
]
<
20
:
card_info
[
"have_comment_number"
]
+=
1
logging
.
info
(
"当前卡片ID:
%
s,comment1子函数消费处理耗时:
%
f"
%
(
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"
%
(
str
(
msg
.
topic
),
str
(
msg
.
partition
),
str
(
msg
.
offset
),
str
(
msg
.
key
),
...
...
@@ -116,35 +115,28 @@ def kafka_consum(topic_name=None):
logging
.
info
(
"当前卡片ID:
%
s,comment2子函数消费处理耗时:
%
f"
%
(
card_info
[
'card_id'
],
time
.
time
()
-
begin
))
# 调完接口后需要再次去拿新的push_time的时间
if
is_many
:
auto_comment_user
(
card_info
)
auto_comment_user
(
card_info
)
elif
action_type
==
"click"
:
# 在这里去调点赞的接口
is_many
=
True
if
'have_click_number'
in
card_info
:
card_info
[
"have_click_number"
]
+=
1
logging
.
info
(
"当前卡片ID:
%
s,click1子函数消费处理耗时:
%
f"
%
(
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"
%
(
str
(
msg
.
topic
),
str
(
msg
.
partition
),
str
(
msg
.
offset
),
str
(
msg
.
key
),
card_info
[
"card_id"
],
is_success
))
logging
.
info
(
"当前卡片ID:
%
s,click2子函数消费处理耗时:
%
f"
%
(
card_info
[
"card_id"
],
time
.
time
()
-
begin
))
if
is_many
:
auto_click_user
(
card_info
)
auto_click_user
(
card_info
)
elif
action_type
==
"follow"
:
# 在这里去调关注的接口
is_many
=
True
if
'have_follow_number'
in
card_info
:
card_info
[
"have_follow_number"
]
+=
1
logging
.
info
(
"当前卡片ID:
%
s,follow1子函数消费处理耗时:
%
f"
%
(
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"
%
(
card_info
[
"card_id"
],
time
.
time
()
-
begin
))
...
...
@@ -152,17 +144,14 @@ def kafka_consum(topic_name=None):
str
(
msg
.
topic
),
str
(
msg
.
partition
),
str
(
msg
.
offset
),
str
(
msg
.
key
),
card_info
[
"card_id"
],
is_success
))
if
is_many
==
True
:
auto_follow_user
(
card_info
)
auto_follow_user
(
card_info
)
else
:
# push_time时间未到 需要等待
logging
.
info
(
"follow [
%
s,
%
s,
%
s,
%
s],push_time未到,需要等待"
%
(
str
(
msg
.
topic
),
str
(
msg
.
partition
),
str
(
msg
.
offset
),
str
(
msg
.
key
)))
save_data_to_kafka
(
card_info
)
pass
else
:
logging
.
info
(
"此条数据已经消费过了
"
)
logging
.
info
(
"此条数据已经消费过了
:
%
s"
%
card_info
)
pass
logging
.
info
(
"消费处理耗时:
%
f"
%
(
time
.
time
()
-
begin
))
except
:
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment