sanmark / laravel-queue-fallback
v1.0.0
2024-05-21 11:27 UTC
Requires (Dev)
- laravel/pint: ^1.15
This package is not auto-updated.
Last update: 2024-09-26 09:01:21 UTC
README
Laravel Queue Fallback 是一个为 Laravel 应用程序提供无缝回退机制的包。它确保即使主队列服务出现问题,您的队列作业也能得到处理,从而增强应用程序后台处理任务的可靠性和容错性。
特性
- 在主服务失败时自动回退到二级队列服务。
- 配置选项以自定义回退行为。
- 与 Laravel 的原生队列配置和服务兼容。
安装
您可以通过 Composer 安装此包。在终端中运行以下命令
composer require sanmark/laravel-queue-fallback
添加回退队列连接(将以下环境变量文件添加到您的项目 .env 文件中)
FAILBACK_QUEUE_CONNECTION = "database"
用法
要使用此包,您需要
在作业文件中使用 Sanmark\QueueFallback\ShouldFallback 特性。
namespace App\Jobs; use Sanmark\QueueFallback\ShouldFallback; use Illuminate\Bus\Queueable; use Illuminate\Queue\SerializesModels; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Foundation\Bus\Dispatchable; class ExampleJob implements ShouldQueue { use Dispatchable, InteractsWithQueue, Queueable, SerializesModels, ShouldFallback; public function handle() { // Job logic here } }
在调度作业时使用 dispatchWithFallback 而不是 dispatch。
use App\Jobs\ExampleJob; ExampleJob::dispatchWithFallback($parameter);
这确保了如果主队列服务失败,作业将自动调度到配置中指定的二级队列服务。
配置
安装包后,您可以通过发布配置文件来配置它。运行以下 artisan 命令
php artisan vendor:publish --provider="Sanmark\\QueueFallback\\QueueFallbackServiceProvider"
此命令将在 Laravel 应用程序的配置目录中发布一个名为 queue-fallback.php
的配置文件。您可以在该文件中自定义回退行为并指定二级队列服务。
贡献
欢迎贡献!如果您有任何想法、建议或错误报告,请在 GitHub 上打开一个问题或提交一个 pull request。
许可
此包是开源软件,受 MIT 许可协议许可。