mxl / laravel-queue-rate-limit
简单的 Laravel 队列速率限制
v3.5.0
2024-09-21 06:49 UTC
Requires
- php: ^7.3||^8.0
- illuminate/cache: ^7.0||^8.0||^9.0|^10.0||^11.0
- illuminate/contracts: ^7.0||^8.0||^9.0|^10.0||^11.0
- illuminate/log: ^7.0||^8.0||^9.0|^10.0||^11.0
- illuminate/queue: ^7.0||^8.0||^9.0|^10.0||^11.0
Requires (Dev)
- phpunit/phpunit: ^7.5||^8.0||^9.0||^10.5
This package is auto-updated.
Last update: 2024-09-21 06:50:20 UTC
README
简单的 Laravel 队列速率限制
安装
3.* 版本仅与 Laravel 7+ 兼容。
$ composer require mxl/laravel-queue-rate-limit
对于 Laravel 6,请使用 2.* 版本
$ composer require mxl/laravel-queue-rate-limit "^2.0"
对于 Laravel 5,请使用 1.* 版本
$ composer require mxl/laravel-queue-rate-limit "^1.0"
Laravel 5.5+ 将使用 自动发现 功能将 MichaelLedin\LaravelQueueRateLimit\QueueServiceProvider::class
添加到提供者。
此包与旧版本的 Laravel 不兼容。
将速率限制添加到 config/queue.php
'rateLimits' => [ 'mail' => [ // queue name 'allows' => 1, // 1 job 'every' => 5 // per 5 seconds ] ]
使用方法
确保在排队作业时不要使用 sync
连接。请参阅 config/queue.php
中的 default
属性。
运行队列工作进程
$ php artisan queue:work --queue default,mail
然后将多个作业推送到 default
和 mail
队列
Mail::queue(..., 'mail'); Mail::queue(..., 'mail'); Mail::queue(..., 'mail'); Mail::queue(..., 'default'); Mail::queue(..., 'default');
您会看到只有 mail
队列作业会受到速率限制,而 default
队列作业将正常运行。
禁用日志记录
扩展 QueueServiceProvider
<?php namespace App\Providers; class QueueServiceProvider extends \MichaelLedin\LaravelQueueRateLimit\QueueServiceProvider { protected function registerLogger() { $this->app->singleton('queue.logger', function () { return null; }); } }
将其添加到 config/app.php
中的 providers
数组
<?php return [ // ... 'providers' => [ // Laravel Framework Service Providers // ... // Application Service Providers // ... App\Providers\QueueServiceProvider::class, // ... ] ];
维护者
作者的其他有用 Laravel 包
- mxl/laravel-api-key - 带有重放攻击预防的 Laravel API Key 授权;
- mxl/laravel-job - 从命令行调度作业等;
许可证
有关详细信息,请参阅 LICENSE 文件。