Этот пакет отправляет уведомления в случае сбоя задания в очереди. «Из коробки» он может отправлять уведомления по почте и/или Slack. Он использует встроенную систему уведомлений Laravel.
Мы вкладываем много ресурсов в создание лучших в своем классе пакетов с открытым исходным кодом. Вы можете поддержать нас, купив один из наших платных продуктов.
Мы очень признательны вам за отправку нам открытки из вашего родного города с указанием того, какой из наших пакетов вы используете. Наш адрес вы найдете на странице контактов. Все полученные открытки мы публикуем на нашей виртуальной стене открыток.
Для версий Laravel 5.8 и 6.x используйте версию 3.x этого пакета.
Вы можете установить пакет через композитор:
composer require spatie/laravel-failed-job-monitor
Если вы собираетесь использовать уведомления Slack, вам также следует установить клиент guzzle:
composer require guzzlehttp/guzzle
Поставщик услуг будет автоматически зарегистрирован.
Далее необходимо опубликовать файл конфигурации:
php artisan vendor:publish --tag=failed-job-monitor-config
Это содержимое файла конфигурации по умолчанию. Здесь вы можете указать уведомляемую группу, которой должны отправляться уведомления. Уведомляемый по умолчанию будет использовать переменные, указанные в этом файле конфигурации.
return [
/ * *
* The notification that will be sent when a job fails .
* /
' notification ' => Spatie FailedJobMonitor Notification::class,
/ * *
* The notifiable to which the notification will be sent . The default
* notifiable will use the mail and slack configuration specified
* in this config file .
* /
' notifiable ' => Spatie FailedJobMonitor Notifiable::class,
/ *
* By default notifications are sent for all failures . You can pass a callable to filter
* out certain notifications . The given callable will receive the notification . If the callable
* return false , the notification will not be sent .
* /
' notificationFilter ' => null ,
/ * *
* The channels to which the notification will be sent .
* /
' channels ' => [ ' mail ' , ' slack ' ],
' mail ' => [
' to ' => [ ' [email protected] ' ],
],
' slack ' => [
' webhook_url ' => env ( ' FAILED_JOB_SLACK_WEBHOOK_URL ' ),
],
];
Класс уведомлений по умолчанию, предоставляемый этим пакетом, поддерживает почту и Slack.
Если вы хотите настроить уведомление, вы можете указать свой собственный класс уведомлений в файле конфигурации.
// config / failed - job - monitor . php
return [
...
' notification ' => App Notifications CustomNotificationForFailedJobMonitor::class,
...
Класс уведомления по умолчанию, предоставляемый этим пакетом, использует channels
, mail
и slack
ключи из файла config
, чтобы определить, как должны отправляться уведомления.
Если вы хотите настроить уведомляемый класс, вы можете указать свой собственный уведомляемый класс в файле конфигурации.
// config / failed - job - monitor . php
return [
' notifiable ' => App CustomNotifiableForFailedJobMonitor::class,
...
Чтобы отфильтровать уведомления, передайте закрытие в notificationFilter
.
// config / failed - job - monitor . php
return [
...
' notificationFilter ' => function ( Spatie FailedJobMonitor Notification $ notification ): bool
{
return true ;
}
. . .
Вышеупомянутое работает только в том случае, если Laravel не поддерживает сериализацию закрытия. Таким образом, вы получите следующую ошибку при запуске php artisan config:cache
LogicException : Your configuration files are not serializable.
Таким образом, было бы лучше создать отдельный класс и использовать вызываемый объект в качестве обратного вызова.
<?php
namespace App Notifications ;
use Spatie FailedJobMonitor Notification ;
class FailedJobNotification
{
public static function notificationFilter ( Notification $ notification ): bool
{
return true ;
}
}
И укажите это в файле конфигурации.
// config / failed - job - monitor . php
return [
...
' notificationFilter ' => [ App Notifications FailedJobNotification::class, ' notificationFilter ' ],
...
Если вы правильно настроили пакет, все готово. Вы получите уведомление в случае сбоя задания в очереди.
Пожалуйста, посетите CHANGELOG для получения дополнительной информации о том, что изменилось за последнее время.
composer test
Пожалуйста, смотрите ВКЛАД для получения подробной информации.
Если вы обнаружили ошибку, связанную с безопасностью, отправьте электронное письмо по адресу [email protected] вместо использования системы отслеживания проблем.
Большое спасибо Егору Таланцеву за помощь в создании v2
пакета.
Лицензия MIT (MIT). Дополнительную информацию см. в файле лицензии.