workman做的API服务,大家有没有什么好的接口频次调用限制的方法?
不想使用重武器,因为是轻量级的,不能占用太多的资源。
只是简单的限制被调用的接口,不用标记用户进行限制,因为那一端是硬件,处理是个动作,所以不能调用太快了
数据发给硬件的时候记录个时间,当前时间减去上次发送的时间小于某个值就忽略不发送,这样就可以严格限制发到硬件的数据频率了。
Gatewayworker的话就用$_SESSION记录时间。workerman的话就用$connection对象记录,比如workerman
$_SESSION
$connection
$time = time(); if (isset($connection->lastSendTime) && $time - $connection->lastSendTime < 某个值) { return; } $connection->lastSendTime = $time; $connection->send('xxxxx');
谢谢,是个思路,不过对面的请求是无状态的,不会带cookies,session没用的。但是想起来业务有个缓存服务,针对硬件控制的,记录下上次访问时间就好了,比对一下。
只是简单的限制被调用的接口,不用标记用户进行限制,因为那一端是硬件,处理是个动作,所以不能调用太快了
数据发给硬件的时候记录个时间,当前时间减去上次发送的时间小于某个值就忽略不发送,这样就可以严格限制发到硬件的数据频率了。
Gatewayworker的话就用
$_SESSION
记录时间。workerman的话就用$connection
对象记录,比如workerman谢谢,是个思路,不过对面的请求是无状态的,不会带cookies,session没用的。但是想起来业务有个缓存服务,针对硬件控制的,记录下上次访问时间就好了,比对一下。