- 语言:Golang
- 数据库:redis + mysql
- 按照conf.yaml中的配置初始化数据库。
- 用户调用{host}/draw?username={username}进行抽奖。
- 产生结果:win 或 failed
- award_time[hash] value:award_name score:winning_time
- award_remain_num[zset] field:award_name value:award_remain_num
- 从剩余奖池中随机抽取此轮中奖的奖品
- 判断本轮抽奖是否抽中
- 平均发放奖品的时间间隔:(end_time - start_time) / prizes_total_amount -> A
- end_time - last_win_time 作为随机数种子 -> B
- A * 已发放奖品数量 -> C
- start_time + C + 由B得到的随机时间%A -> D
- time.now() >= D -> 中奖
- Go启动一个web服务器
- Go连接redis,mysql及操作
- time包的使用,时区的注意
- 读取yaml配置文件
- 加入log框架,记录log日志
- 加入oauth认证,只有本系统用户可以使用
- 更改架构使用gin框架