项目作者: mxl

项目描述 :
Simple Laravel queue rate limiting
高级语言: PHP
项目地址: git://github.com/mxl/laravel-queue-rate-limit.git
创建时间: 2019-08-02T08:03:58Z
项目社区:https://github.com/mxl/laravel-queue-rate-limit

开源协议:MIT License

下载


laravel-queue-rate-limit

Current version
Monthly Downloads
Total Downloads
Build Status

Simple Laravel queue rate limiting

Installation

3.* versions are compatible only with Laravel 7+.

  1. $ composer require mxl/laravel-queue-rate-limit

For Laravel 6 use 2.* versions:

  1. $ composer require mxl/laravel-queue-rate-limit "^2.0"

For Laravel 5 use 1.* versions:

  1. $ composer require mxl/laravel-queue-rate-limit "^1.0"

Laravel 5.5+ will use the @taylorotwell/package-auto-discovery-in-laravel-5-5-ea9e3ab20518">auto-discovery feature to add MichaelLedin\LaravelQueueRateLimit\QueueServiceProvider::class to providers.

This package is not compatible with older Laravel versions.

Add rate limits to config/queue.php:

  1. 'rateLimits' => [
  2. 'mail' => [ // queue name
  3. 'allows' => 1, // 1 job
  4. 'every' => 5 // per 5 seconds
  5. ]
  6. ]

Usage

Make sure that you don’t use sync connection when queueing jobs. See default property in config/queue.php.

Run queue worker:

  1. $ php artisan queue:work --queue default,mail

Then push several jobs to default and mail queues:

  1. Mail::queue(..., 'mail');
  2. Mail::queue(..., 'mail');
  3. Mail::queue(..., 'mail');
  4. Mail::queue(..., 'default');
  5. Mail::queue(..., 'default');

You’ll see that only mail queue jobs will be rate limited while default queue jobs will run normally.

Disable logging

Extend QueueServiceProvider:

  1. <?php
  2. namespace App\Providers;
  3. class QueueServiceProvider extends \MichaelLedin\LaravelQueueRateLimit\QueueServiceProvider
  4. {
  5. protected function registerLogger()
  6. {
  7. $this->app->singleton('queue.logger', function () {
  8. return null;
  9. });
  10. }
  11. }

Add it to providers array in config/app.php:

  1. <?php
  2. return [
  3. // ...
  4. 'providers' => [
  5. // Laravel Framework Service Providers
  6. // ...
  7. // Application Service Providers
  8. // ...
  9. App\Providers\QueueServiceProvider::class,
  10. // ...
  11. ]
  12. ];

Maintainers

Other useful Laravel packages from the author

License

See the LICENSE file for details.