sanmark/laravel-queue-fallback

v1.0.0 2024-05-21 11:27 UTC

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 许可协议许可。