Laravel Failed Job Monitor 使用教程

Laravel Failed Job Monitor 使用教程

laravel-failed-job-monitorGet notified when a queued job fails项目地址:https://gitcode.com/gh_mirrors/la/laravel-failed-job-monitor

1. 项目的目录结构及介绍

Laravel Failed Job Monitor 项目的目录结构遵循标准的 Laravel 包结构。以下是主要目录和文件的介绍:

laravel-failed-job-monitor/
├── src/
│   ├── FailedJobMonitorServiceProvider.php
│   ├── Notification.php
│   ├── NotificationFilter.php
│   └── config/
│       └── failed-job-monitor.php
├── tests/
│   └── Unit/
│       └── NotificationFilterTest.php
├── README.md
├── LICENSE
├── composer.json
└── composer.lock
  • src/:包含包的核心代码。
    • FailedJobMonitorServiceProvider.php:服务提供者,用于注册和配置包。
    • Notification.php:通知类,用于处理失败任务的通知。
    • NotificationFilter.php:通知过滤器,用于过滤通知。
    • config/:配置文件目录。
      • failed-job-monitor.php:配置文件,用于配置通知方式和其他选项。
  • tests/:包含单元测试。
    • Unit/:单元测试目录。
      • NotificationFilterTest.php:通知过滤器的单元测试。
  • README.md:项目说明文档。
  • LICENSE:许可证文件。
  • composer.json:Composer 配置文件。
  • composer.lock:Composer 锁定文件。

2. 项目的启动文件介绍

项目的启动文件是 FailedJobMonitorServiceProvider.php,它负责注册和配置包。以下是该文件的主要内容:

namespace Spatie\FailedJobMonitor;

use Illuminate\Support\ServiceProvider;

class FailedJobMonitorServiceProvider extends ServiceProvider
{
    public function boot()
    {
        $this->publishes([
            __DIR__.'/../config/failed-job-monitor.php' => config_path('failed-job-monitor.php'),
        ], 'config');

        $this->mergeConfigFrom(__DIR__.'/../config/failed-job-monitor.php', 'failed-job-monitor');

        $this->app['queue']->failing(function ($event) {
            $notification = new Notification($event);

            $notifiable = $this->app->make(config('failed-job-monitor.notifiable'));

            if (config('failed-job-monitor.notificationFilter')) {
                $filter = $this->app->make(config('failed-job-monitor.notificationFilter'));

                if (!$filter($notification)) {
                    return;
                }
            }

            $notifiable->notify($notification);
        });
    }

    public function register()
    {
        //
    }
}
  • boot() 方法:负责发布配置文件和注册失败任务的监听器。
  • register() 方法:目前为空,但可以用于注册其他服务。

3. 项目的配置文件介绍

配置文件 failed-job-monitor.php 位于 src/config/ 目录下,用于配置通知方式和其他选项。以下是配置文件的主要内容:

return [
    'notifiable' => \App\CustomNotifiableForFailedJobMonitor::class,
    'notificationFilter' => function (Spatie\FailedJobMonitor\Notification $notification): bool {
        return true;
    },
    'channels' => ['mail', 'slack'],
    'mail' => [
        'to' => ['email@example.com'],
    ],
    'slack' => [
        'webhook_url' => env('FAILED_JOB_SLACK_WEBHOOK_URL'),
    ],
];
  • notifiable:指定自定义的通知类。
  • notificationFilter:通知过滤器,用于过滤通知。
  • channels:通知渠道,支持 mailslack
  • mail:邮件配置,指定接收邮件的地址。
  • slack:Slack 配置,指定 Webhook URL。

通过配置文件,可以灵活地设置通知方式和接收者,确保在队列任务失败时能够及时收到通知。

laravel-failed-job-monitorGet notified when a queued job fails项目地址:https://gitcode.com/gh_mirrors/la/laravel-failed-job-monitor

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卫颂耀Armed

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值