Dieses Paket sendet Benachrichtigungen, wenn ein Job in der Warteschlange fehlschlägt. Standardmäßig kann eine Benachrichtigung per E-Mail und/oder Slack gesendet werden. Es nutzt das native Benachrichtigungssystem von Laravel.
Wir investieren viele Ressourcen in die Erstellung erstklassiger Open-Source-Pakete. Sie können uns unterstützen, indem Sie eines unserer kostenpflichtigen Produkte kaufen.
Wir freuen uns sehr, dass Sie uns eine Postkarte aus Ihrer Heimatstadt schicken und erwähnen, welches unserer Pakete Sie verwenden. Unsere Adresse finden Sie auf unserer Kontaktseite. Wir veröffentlichen alle erhaltenen Postkarten auf unserer virtuellen Postkartenwand.
Verwenden Sie für die Laravel-Versionen 5.8 und 6.x v3.x dieses Pakets.
Sie können das Paket über Composer installieren:
composer require spatie/laravel-failed-job-monitor
Wenn Sie Slack-Benachrichtigungen verwenden möchten, sollten Sie auch den Guzzle-Client installieren:
composer require guzzlehttp/guzzle
Der Dienstanbieter wird automatisch registriert.
Als nächstes müssen Sie die Konfigurationsdatei veröffentlichen:
php artisan vendor:publish --tag=failed-job-monitor-config
Dies ist der Inhalt der Standardkonfigurationsdatei. Hier können Sie angeben, an welchen Meldepflichtigen die Benachrichtigungen gesendet werden sollen. Die Standardbenachrichtigung verwendet die in dieser Konfigurationsdatei angegebenen Variablen.
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 ' ),
],
];
Die von diesem Paket bereitgestellte Standardbenachrichtigungsklasse unterstützt E-Mail und Slack.
Wenn Sie die Benachrichtigung anpassen möchten, können Sie in der Konfigurationsdatei Ihre eigene Benachrichtigungsklasse angeben.
// config / failed - job - monitor . php
return [
...
' notification ' => App Notifications CustomNotificationForFailedJobMonitor::class,
...
Die von diesem Paket bereitgestellte standardmäßige Benachrichtigungsklasse verwendet die Schlüssel channels
, mail
und „ slack
aus der config
, um zu bestimmen, wie Benachrichtigungen gesendet werden müssen
Wenn Sie die Benachrichtigungsfunktion anpassen möchten, können Sie in der Konfigurationsdatei Ihre eigene Benachrichtigungsklasse angeben.
// config / failed - job - monitor . php
return [
' notifiable ' => App CustomNotifiableForFailedJobMonitor::class,
...
Um die Benachrichtigungen zu filtern, übergeben Sie einen Abschluss an den notificationFilter
.
// config / failed - job - monitor . php
return [
...
' notificationFilter ' => function ( Spatie FailedJobMonitor Notification $ notification ): bool
{
return true ;
}
. . .
Das oben Gesagte funktioniert nur, wenn Laravel die Schließungsserialisierung nicht unterstützt. Daher erhalten Sie die folgende Fehlermeldung, wenn Sie php artisan config:cache
ausführen
LogicException : Your configuration files are not serializable.
Es wäre daher besser, eine separate Klasse zu erstellen und ein Callable als Callback zu verwenden.
<?php
namespace App Notifications ;
use Spatie FailedJobMonitor Notification ;
class FailedJobNotification
{
public static function notificationFilter ( Notification $ notification ): bool
{
return true ;
}
}
Und verweisen Sie darauf in der Konfigurationsdatei.
// config / failed - job - monitor . php
return [
...
' notificationFilter ' => [ App Notifications FailedJobNotification::class, ' notificationFilter ' ],
...
Wenn Sie das Paket richtig konfiguriert haben, sind Sie fertig. Sie erhalten eine Benachrichtigung, wenn ein Job in der Warteschlange fehlschlägt.
Weitere Informationen zu den letzten Änderungen finden Sie im CHANGELOG.
composer test
Weitere Informationen finden Sie unter BEITRAGEN.
Wenn Sie einen Sicherheitsfehler gefunden haben, senden Sie bitte eine E-Mail an [email protected], anstatt den Issue-Tracker zu verwenden.
Ein großes Dankeschön an Egor Talantsev für seine Hilfe bei der Erstellung v2
des Pakets.
Die MIT-Lizenz (MIT). Weitere Informationen finden Sie in der Lizenzdatei.