https://github.com/halaei/bredis
Redis queue driver for Laravel < 5.6 with blocking pop support (this is ported to laravel 5.6 core)
https://github.com/halaei/bredis
blocking-pop laravel redis redis-queue
Last synced: 22 days ago
JSON representation
Redis queue driver for Laravel < 5.6 with blocking pop support (this is ported to laravel 5.6 core)
- Host: GitHub
- URL: https://github.com/halaei/bredis
- Owner: halaei
- Created: 2016-09-20T10:38:42.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2017-10-02T08:07:06.000Z (over 8 years ago)
- Last Synced: 2024-11-11T13:07:45.546Z (over 1 year ago)
- Topics: blocking-pop, laravel, redis, redis-queue
- Language: PHP
- Homepage:
- Size: 9.77 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# bredis queue driver for Laravel
[](https://travis-ci.org/halaei/bredis)
[](https://packagist.org/packages/halaei/bredis)
[](https://packagist.org/packages/halaei/bredis)
[](https://packagist.org/packages/halaei/bredis)
[](https://packagist.org/packages/halaei/bredis)
## When do you need bredis?
You need `bredis` when all of these are applied:
1. **You don't want your jobs to be delayed because your workers are currently sleeping.**
2. You don't want to run `queue:work --sleep=0` on current Redis queue driver because it will devour your CPU when there is no job.
Hence, you need your workers to idle-wait for a job and process them just when they arrive, with nearly no delay.
With `bredis` you can happily run `queue:work --sleep=0` without worrying about busy waiting and CPU overload.
## Installation
### 1. Install the package via compioser
composer require halaei/bredis
### 2. Add the service provider to your config/app.php
Halaei\BRedis\BlockingRedisServiceProvider::class
### 3. Add bredis connections to app/queue.php
'bredis' => [
'driver' => 'bredis',
'connection' => 'default',
'queue' => 'default',
'retry_after' => 90,
'timeout' => 10, //Maximum seconds to wait for a job
],
Please note that if you need to increase 'timeout' in the config array above, you should increase 'retry_after' in the array as well as --timeout in your `queue:work` commands.
**Warning**: bredis queue workers don't bother handling jobs that are delayed or reserved. So when using bredis workers, you have to have at least one redis worker as well.
**Note**: bredis queue driver is 100% compatible with redis driver. In other words, you may push the jobs using redis driver and pop them using bredis, or vice versa.