Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/garbetjie/laravel-database-queue
Laravel queue driver for the database with optimistic queue locking.
https://github.com/garbetjie/laravel-database-queue
database laravel laravel-queue
Last synced: 19 days ago
JSON representation
Laravel queue driver for the database with optimistic queue locking.
- Host: GitHub
- URL: https://github.com/garbetjie/laravel-database-queue
- Owner: garbetjie
- License: mit
- Created: 2020-05-22T12:41:31.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2021-03-11T07:50:47.000Z (almost 4 years ago)
- Last Synced: 2024-11-13T02:49:47.198Z (about 2 months ago)
- Topics: database, laravel, laravel-queue
- Language: PHP
- Size: 26.4 KB
- Stars: 2
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Laravel Database Queue Driver
A database queue driver for Laravel with optimistic locking and job count caching. Heavily inspired by the article at
https://ph4r05.deadcode.me/blog/2017/12/23/laravel-queues-optimization.html, and the relevant package at
https://github.com/ph4r05/laravel-queue-database-ph4.## Installation
1. Install this package using composer:
```
composer require garbetjie/laravel-database-queue
```2. Run the migration to alter the jobs table.
If you haven't yet run the command to create the jobs table, do so first (`./artisan queue:table`).
```
php artisan garbetjie:database-queue:table
php artisan migrate
```3. Replace the `database` driver in your queue connection with `database-garbetjie`:
```php
[
'database' => [
'driver' => 'database-garbetjie',
'table' => 'jobs',
'queue' => 'default',
'retry_after' => 60,
'prefetch' => 5,
'shuffle' => true,
]
],
];
```4. Optionally, you can also create a "cache" table for job counts.
If you have many jobs in your queue, running a query like `SELECT queue, COUNT(*) FROM jobs GROUP BY 1` can take a
long time to yield results. Run the following command to generate migrations that will create a job count cache table, and will keep the job counts
updated through the use of triggers.
```
php artisan garbetjie:database-queue:table-job-counts
php artisan migrate
```### Configuration
This queue driver extends the default `database` queue driver. As a result, the configuration for this queue driver is
exactly the same as the original database queue driver (https://laravel.com/docs/7.x/queues#driver-prerequisites), except
for some additional configuration options:| Name | Type | Default | Description |
|----------|------|---------|-------------------------------------------------------------------------------------------------------------------------------------------|
| prefetch | int | 5 | Determines how many queue jobs to fetch before attempting to reserve one. Should ideally default to the number of workers for your queue. |
| shuffle | bool | true | Whether or not to shuffle fetched jobs before attempting to reserve one. |## Changelog
* **1.3.2**
* Exclude `laravel/database` versions `>=7.30.3 <8.0`, due to Dependabot alert.
* **1.3.1**
* Exclude `laravel/database` versions `>= 8.0 <8.22.1`, due to Dependabot alert.* **1.3.0**
* Add support for Laravel 8.