Java-java中如何限制时间段内某方法的调用次数?
项目中甲方领导担心对某系统某个接口的调用次数过多,导致系统宕掉,希望在本项目中约束某个时间段内调用接口的次数,比如每分钟不能超过100次。请问各位大牛有什么思路?
补充:接口是使用HTTP方式,向某个其他应用提供的地址POST数据,在自己的应用中进行限制,比如每分钟100次以内。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
使用Proxy模式
例如需要限制方法:
public void play();
通用限制调用/分钟类:
abstract class LimitInvokingInMinute{
public LimitInvokingInMinute(int limit){
this.limit=limit;
}
int limit;
void execute(){
//TODO:限制访问次数/每分钟逻辑
invoking();
}
abstract void invoking();
}
针对方法是用:
LimitInvokingInMinute limitInvoking=new LimitInvokingInMinute(){
public void invoking(){
play();//调用被限制方法
}
}
使用的话仅需要:
limitInvoking.execute();
即可