数据库 - Model 前置说明
官方开源项目 抓取代理IP

介绍

@Limit()注解,主要用于对路由进行路由限流器注册。
该注解,共支持6个参数设置。

注意:若需要启用路由限流器,需要先在/config/limit.php配置文件中,将对应的limit_switch参数,改为true

用法

场景:对路由进行路由限流器注册。
支持:HTTP(2.5.5起)WebSocket(2.5.5起)Rpc(2.5.5起)
注解:@Limit()

参数:

  • peak=""

    • 功能:限流峰值
    • 值单位:整数
    • 默认值:无
  • time=""

    • 功能:一次限流统计间隔秒数
    • 值单位:秒
    • 默认值:参考/config/limit.php配置项
  • start=""

    • 功能:启用日期
    • 值单位:日期格式
    • 默认值:参考/config/limit.php配置项
    • 值格式支持:[年-月-日 时:分:秒]、[年-月-日]、[月-日]、[时:分:秒]、[时:分]、[时]
    • 注意false代表不限制时间
  • end=""

    • 功能:停止日期
    • 值单位:日期格式
    • 默认值:参考/config/limit.php配置项
    • 值格式支持:[年-月-日 时:分:秒]、[年-月-日]、[月-日]、[时:分:秒]、[时:分]、[时]
    • 注意false代表不限制时间
  • status=""

    • 功能:是否关闭该条路由限流器,一般配合全局路由限流时使用
    • 值单位true或者false
    • 默认值true
  • callback=""

    • 功能:当触达peak峰值时,系统调用的回调处理类。
    • 值单位:字符串
    • 默认值:参考/config/limit.php配置项

使用案例

一个完整的HTTP服务路由限流注解大概如下:

<?php
namespace app\http;
use x\controller\Http;

class Index extends Http
{
    /**
     * @RequestMapping(route="/test", method="GET", title="我是测试路由")
     * @Limit(peak="50", time="5", start="09 10:20", end="23 23:30")
    */
    public function param() {
        return $this->fetch('测试@Limit()注解');
    }
}

上面的@Limit()注解,可以解释为:

  • HTTP路由/test5秒内,最大被请求次数不能大于50
  • 开启时间为每月9号的10点20分开始
  • 结束时间为每月23号的23点30分结束

SW-X

企业级 - 高性能 PHP 框架

最后更新:3年前 . 作者-小黄牛

本篇目录