garbetjie/laravel-database-queue
Composer 安装命令:
composer require garbetjie/laravel-database-queue
包简介
Laravel queue driver for the database with optimistic queue locking.
README 文档
README
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
- Install this package using composer:
composer require garbetjie/laravel-database-queue
- 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
- Replace the
databasedriver in your queue connection withdatabase-garbetjie:
<?php // In config/queue.php: return [ 'connections' => [ 'database' => [ 'driver' => 'database-garbetjie', 'table' => 'jobs', 'queue' => 'default', 'retry_after' => 60, 'prefetch' => 5, 'shuffle' => true, ] ], ];
-
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 1can 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/databaseversions>=7.30.3 <8.0, due to Dependabot alert.
- Exclude
-
1.3.1
- Exclude
laravel/databaseversions>= 8.0 <8.22.1, due to Dependabot alert.
- Exclude
-
1.3.0
- Add support for Laravel 8.
garbetjie/laravel-database-queue 适用场景与选型建议
garbetjie/laravel-database-queue 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 758 次下载、GitHub Stars 达 2, 最近一次更新时间为 2020 年 09 月 03 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 garbetjie/laravel-database-queue 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 garbetjie/laravel-database-queue 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 758
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 2
- 点击次数: 1
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2020-09-03