博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
速率限制思路
阅读量:6246 次
发布时间:2019-06-22

本文共 786 字,大约阅读时间需要 2 分钟。

public function checkRateLimit()    {        $current = time();        // 获得限制配置 $limit 限制次数,$window秒数。        // 比如每300s调用1000次        // $window=300 $limit=1000        list ($limit, $window) = getRateLimit();                // 获得限制数据 $allowance 可用调用次数,$timestamp上次调用时间。        list ($allowance, $timestamp) = loadAllowance();        // 计算这次可调用次数,即$allowance再加上两次间隔调用时间*调用速率        $allowance += (int) (($current - $timestamp) * $limit / $window);                        if ($allowance > $limit) {            $allowance = $limit;        }        if ($allowance < 1) {            //每次调用可调用为0            saveAllowance(0, $current);            return false;        } else {            //每次调用可调用次数减1            saveAllowance($allowance - 1, $current);            return true;        }    }

转载地址:http://jslia.baihongyu.com/

你可能感兴趣的文章
特殊的上下文选择符
查看>>
iphone-common-codes-ccteam源代码 CCUIApplication.m
查看>>
展开和折叠GridView行
查看>>
SharePoint PeopleEditor 控件的使用
查看>>
删除mysql__转
查看>>
python+selenium的使用
查看>>
python2.7中MySQLdb的安装与使用详解
查看>>
知乎技术方案初探[转]
查看>>
Java中的Thread与Runnable的区别
查看>>
2018/11/29 一个64位操作系统的设计与实现 02 (安装nasm)
查看>>
python(48):re.split 多分隔符
查看>>
nyoj746 整数划分(四)
查看>>
FZU 1894 志愿者选拔 单调队列
查看>>
asp.net的Request.ServerVariables参数说明
查看>>
eclipse中配置maven
查看>>
get方法与post方法的使用
查看>>
一步一步学习SignalR进行实时通信_1_简单介绍
查看>>
SPSS—回归—多元线性回归(转)
查看>>
webapi文档描述-swagger
查看>>
git使用笔记
查看>>