Browse Source

change online user counter & note traffic

dev
BreakWa11 9 years ago
parent
commit
d8dda5042f
  1. 25
      db_transfer.py

25
db_transfer.py

@ -29,12 +29,18 @@ class DbTransfer(object):
query_sub_in = None query_sub_in = None
last_time = time.time() last_time = time.time()
for id in dt_transfer.keys(): for id in dt_transfer.keys():
query_sub_when += ' WHEN %s THEN u+%s' % (id, dt_transfer[id][0]) transfer = dt_transfer[id]
query_sub_when2 += ' WHEN %s THEN d+%s' % (id, dt_transfer[id][1]) update_trs = 1024 * max(2048 - self.user_pass.get(id, 0) * 64, 16)
if transfer[0] + transfer[1] < update_trs:
continue
query_sub_when += ' WHEN %s THEN u+%s' % (id, transfer[0])
query_sub_when2 += ' WHEN %s THEN d+%s' % (id, transfer[1])
if query_sub_in is not None: if query_sub_in is not None:
query_sub_in += ',%s' % id query_sub_in += ',%s' % id
else: else:
query_sub_in = '%s' % id query_sub_in = '%s' % id
if query_sub_when == '': if query_sub_when == '':
return return
query_sql = query_head + ' SET u = CASE port' + query_sub_when + \ query_sql = query_head + ' SET u = CASE port' + query_sub_when + \
@ -56,9 +62,8 @@ class DbTransfer(object):
#上次和本次的增量 #上次和本次的增量
dt_transfer = {} dt_transfer = {}
for id in curr_transfer.keys(): for id in curr_transfer.keys():
update_trs = 1024 * max(2048 - self.user_pass.get(id, 0) * 64, 16)
if id in last_transfer: if id in last_transfer:
if curr_transfer[id][0] + curr_transfer[id][1] - last_transfer[id][0] - last_transfer[id][1] < update_trs: if curr_transfer[id][0] + curr_transfer[id][1] - last_transfer[id][0] - last_transfer[id][1] <= 0:
self.user_pass[id] = self.user_pass.get(id, 0) + 1 self.user_pass[id] = self.user_pass.get(id, 0) + 1
continue continue
if last_transfer[id][0] <= curr_transfer[id][0] and \ if last_transfer[id][0] <= curr_transfer[id][0] and \
@ -69,7 +74,7 @@ class DbTransfer(object):
dt_transfer[id] = [int(curr_transfer[id][0] * get_config().TRANSFER_MUL), dt_transfer[id] = [int(curr_transfer[id][0] * get_config().TRANSFER_MUL),
int(curr_transfer[id][1] * get_config().TRANSFER_MUL)] int(curr_transfer[id][1] * get_config().TRANSFER_MUL)]
else: else:
if curr_transfer[id][0] + curr_transfer[id][1] < update_trs: if curr_transfer[id][0] + curr_transfer[id][1] <= 0:
self.user_pass[id] = self.user_pass.get(id, 0) + 1 self.user_pass[id] = self.user_pass.get(id, 0) + 1
continue continue
dt_transfer[id] = [int(curr_transfer[id][0] * get_config().TRANSFER_MUL), dt_transfer[id] = [int(curr_transfer[id][0] * get_config().TRANSFER_MUL),
@ -258,6 +263,13 @@ class Dbv3Transfer(DbTransfer):
for id in dt_transfer.keys(): for id in dt_transfer.keys():
transfer = dt_transfer[id] transfer = dt_transfer[id]
alive_user_count = alive_user_count + 1
bandwidth_thistime = bandwidth_thistime + transfer[0] + transfer[1]
update_trs = 1024 * max(2048 - self.user_pass.get(id, 0) * 64, 16)
if transfer[0] + transfer[1] < update_trs:
continue
query_sub_when += ' WHEN %s THEN u+%s' % (id, transfer[0]) query_sub_when += ' WHEN %s THEN u+%s' % (id, transfer[0])
query_sub_when2 += ' WHEN %s THEN d+%s' % (id, transfer[1]) query_sub_when2 += ' WHEN %s THEN d+%s' % (id, transfer[1])
@ -269,9 +281,6 @@ class Dbv3Transfer(DbTransfer):
self.traffic_format(transfer[0] + transfer[1]) + "', unix_timestamp()); ") self.traffic_format(transfer[0] + transfer[1]) + "', unix_timestamp()); ")
cur.close() cur.close()
alive_user_count = alive_user_count + 1
bandwidth_thistime = bandwidth_thistime + transfer[0] + transfer[1]
if query_sub_in is not None: if query_sub_in is not None:
query_sub_in += ',%s' % id query_sub_in += ',%s' % id
else: else:

Loading…
Cancel
Save