Skip to content

Commit

Permalink
*: fix n+1 query
Browse files Browse the repository at this point in the history
  • Loading branch information
Ehco1996 committed Mar 27, 2023
1 parent e88d4dd commit 7e86226
Showing 1 changed file with 13 additions and 3 deletions.
16 changes: 13 additions & 3 deletions apps/sspanel/tasks.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,12 +32,22 @@ def sync_user_traffic_task(node_id, data):
log_time = get_current_datetime()
user_model_list = []
trafficlog_model_list = []

# load user in batch
user_ids = []
for user_data in data:
user_id = user_data["user_id"]
u = int(user_data["upload_traffic"] * node.enlarge_scale)
d = int(user_data["download_traffic"] * node.enlarge_scale)
user_ids.append(user_data["user_id"])
user_map = {}
for u in m.User.objects.filter(id__in=user_ids):
user_map[u.id] = u

for user_data in data:
user_id = int(user_data["user_id"])
u = int(int(user_data["upload_traffic"]) * node.enlarge_scale)
d = int(int(user_data["download_traffic"]) * node.enlarge_scale)
# 个人流量增量
user = m.User.get_by_pk(user_id)
user = user_map[user_id]
user.download_traffic += d
user.upload_traffic += u
user.last_use_time = log_time
Expand Down

0 comments on commit 7e86226

Please sign in to comment.