You need to enable JavaScript to run this app. Laravel队列配置spatie限流中间件后提示无速率限制,如何关闭相关日志
优惠活动
大模型
产品
解决方案
定价
更多

Laravel队列配置spatie限流中间件后提示无速率限制,如何关闭相关日志

问题原因

这条日志由spatie/laravel-rate-limited-job-middleware包生成,触发原因是你配置限流规则时没有指定唯一的限流标识,中间件默认会用任务所属队列名称作为限流维度的一部分,当中间件无法匹配到对应队列的限流规则时,就会输出该提示。

修复报错方案

提供两种可选修复方式:

  1. 指定全局唯一限流标识(最通用,不依赖队列配置)
    在RateLimited实例化后调用by方法传入自定义的唯一字符串即可,修改后的middleware方法代码如下:
public function middleware()
{
    $rateLimitedMiddleware = (new RateLimited())
        ->allow(50)
        ->everySeconds(10)
        ->releaseAfterSeconds(5)
        ->by('weekly_survey_email_job'); // 自定义唯一限流标识

    return [$rateLimitedMiddleware];
}
  1. 按队列维度限流
    如果你的邮件任务固定分发到指定队列(比如email队列),添加onQueue方法指定队列名即可匹配规则:
->onQueue('email')
关闭限流相关日志的方法

两种可选方案:

  • 方案1:修改包配置关闭所有该包的日志
    先运行命令发布包配置文件:
    php artisan vendor:publish --provider="Spatie\RateLimitedMiddleware\RateLimitedMiddlewareServiceProvider"
    打开生成的config/rate-limited-middleware.php文件,将log_enabled参数值改为false即可关闭该包所有日志输出。
  • 方案2:仅过滤特定报错日志
    如果你不想关闭所有限流日志,只需要屏蔽「No rate limit is set for queue」这一条,可以在config/logging.php对应日志通道的配置中,添加monolog过滤规则,匹配该字符串的日志直接丢弃即可。

内容的提问来源于stack exchange,提问作者Toksti Dats Ready

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.19 22:15:01