一、需求背景
抽奖活动统计奖池中各个奖项的发放概率
二、逻辑拆分
1、取当前时间整点时间在数据库中对应的poolid
#获取当前时间戳
hour_stamp = int(datetime.now().replace(minute=0, second=0, microsecond=0).timestamp()) #只取当前时间段的整点时间,向上取整,分钟与秒均替换成00
print("当前时间戳:", hour_stamp)
#查询pooId
def select_pooId():
sql_response = cursor.execute("SELECT id FROM draw_pool WHERE startHour = %s" %hour_stamp)
repare = cursor.fetchone()
if repare == None:
print("数据库数据未刷新,获取不到数据,请联系狗逼开发!!!")
else:
ren = repare[0]
print("当前时间段对应的pooid为:", ren)
return ren
pooId = select_pooId()
2、清空用户id对应残留数据,保证数据准确性
sql_format = cursor.execute("DELETE FROM card_user_record WHERE userId = %s" %userId)
cnn.commit()
print("数据表格式化成功")
3、批量运行接口1000次,保证缩小概率偏差
#批量运行定时红包接口
num = 1000
Pointer = 0
while running:
if Pointer == num:
running = False
print("已成功运行%s次" %Pointer)
else:
Interface_response = Interface()
Pointer = Pointer + 1
print(Interface_response)
4、加入等待时间,基于系统的抗压能力保证接口运行成功率
time.sleep(1)
sys.stdout.flush() #强制刷新缓存区
5、接口运行结束后,对表中数据进行分