mxl/laravel-queue-rate-limit

简单的 Laravel 队列速率限制

v3.5.0 2024-09-21 06:49 UTC

This package is auto-updated.

Last update: 2024-09-21 06:50:20 UTC


README

Current version Monthly Downloads Total Downloads Build Status

简单的 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

然后将多个作业推送到 defaultmail 队列

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 包

许可证

有关详细信息,请参阅 LICENSE 文件。