workman做的API服務(wù),大家有沒有什么好的接口頻次調(diào)用限制的方法?
不想使用重武器,因?yàn)槭禽p量級(jí)的,不能占用太多的資源。
只是簡(jiǎn)單的限制被調(diào)用的接口,不用標(biāo)記用戶進(jìn)行限制,因?yàn)槟且欢耸怯布幚硎莻€(gè)動(dòng)作,所以不能調(diào)用太快了
數(shù)據(jù)發(fā)給硬件的時(shí)候記錄個(gè)時(shí)間,當(dāng)前時(shí)間減去上次發(fā)送的時(shí)間小于某個(gè)值就忽略不發(fā)送,這樣就可以嚴(yán)格限制發(fā)到硬件的數(shù)據(jù)頻率了。
Gatewayworker的話就用$_SESSION
記錄時(shí)間。workerman的話就用$connection
對(duì)象記錄,比如workerman
$time = time();
if (isset($connection->lastSendTime) && $time - $connection->lastSendTime < 某個(gè)值) {
return;
}
$connection->lastSendTime = $time;
$connection->send('xxxxx');
謝謝,是個(gè)思路,不過對(duì)面的請(qǐng)求是無狀態(tài)的,不會(huì)帶cookies,session沒用的。但是想起來業(yè)務(wù)有個(gè)緩存服務(wù),針對(duì)硬件控制的,記錄下上次訪問時(shí)間就好了,比對(duì)一下。