多Key切换项目实录开篇
前言
好久没更新博客了,最近一段时间休整了一下。
原因
最近做项目的时候我们碰到一个需求,那就是多个key的切换问题。我给大家讲下我遇到的场景
案例一:我们要请求A网站的一个接口,这个公司的负责人给了我们一个key,这个key每天只能请求5000次.但是当我们每天的需求量超过5000怎么办
案例二:outlook邮箱每月转发邮件也是有上限的当我们月转发量超过的时候该怎么办
案例三:一个自动签到项目每天要轮询给N个账户去签到
这3个场景让我感觉,我不能每次都在项目里面根据业务去for循环处理了,我决定将这些需求写一个东西去统一处理(当然这个事情可以慢慢做)
思考
对于案例一我需要的循环key,案例二我需要循环outlook账号密码,案例三我需要循环appkey
同一个操作就是需要去循环,案例一和二需要的是对一个key或者账号密码进行限制循环次数,案例三对每一个appkey循环一边
三个案例都需要存储自己的key,但是每个案例的key生命周期不同,案例一的周期是天(一次性)、案例二是月、案例三是天
内容
根据上面的需求可以得出下下面的东西
string KeyName (案例一、案例二、案例三)
int ResidueDegree(剩余可以用次数)
LifeCycle LifeCycle (生命周期)
Json Data (不同案例的数据对象)
DateTime ExpirationDate (过期时间)
public enum LifeCycle
{
Day,
//Week,
Month,
Year,
NotRepeat
}
项目其实已经做了几天了,不过每天时间有限就写一点点,目前内存和Sqlserver的基础使用版本已经完成了,不过还有很多东西没做,仓库在下面大家可以看看https://github.com/MrChuJiu/SwitchingMultipleKeys
结语
然后就是这个文章的目的,因为这个项目思路上比较清晰,而且项目解决的问题又是常见问题,所以这里主要想和各位道友一起做,
有想加入的朋友可以直接 pull 下来,然后提pr、issues然后一起来做, 需要我帮助的朋友也可以群里直接联系我。
当然目前感觉并不会有多少人真的参与进来,不过项目确实是个好项目,希望能给参与到的人简历加上一分。
另外我会根据这个标题更新项目进度和参与人,希望大家持续关注 (非常感谢@大黄瓜 提供的代码和思路)