Ce package envoie des notifications si une tâche en file d'attente échoue. Prêt à l'emploi, il peut envoyer une notification par courrier et/ou Slack. Il exploite le système de notification natif de Laravel.
Nous investissons beaucoup de ressources dans la création des meilleurs packages open source de leur catégorie. Vous pouvez nous soutenir en achetant l'un de nos produits payants.
Nous apprécions grandement que vous nous envoyiez une carte postale de votre ville natale, mentionnant le(s) forfait(s) que vous utilisez. Vous trouverez notre adresse sur notre page contact. Nous publions toutes les cartes postales reçues sur notre mur virtuel de cartes postales.
Pour les versions 5.8 et 6.x de Laravel, utilisez la v3.x de ce package.
Vous pouvez installer le package via composer :
composer require spatie/laravel-failed-job-monitor
Si vous avez l'intention d'utiliser les notifications Slack, vous devez également installer le client guzzle :
composer require guzzlehttp/guzzle
Le prestataire de services sera automatiquement enregistré.
Ensuite, vous devez publier le fichier de configuration :
php artisan vendor:publish --tag=failed-job-monitor-config
C'est le contenu du fichier de configuration par défaut. Ici, vous pouvez spécifier le notifiable auquel les notifications doivent être envoyées. Le notifiable par défaut utilisera les variables spécifiées dans ce fichier de configuration.
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 ' ),
],
];
La classe de notification par défaut fournie par ce package prend en charge le courrier et Slack.
Si vous souhaitez personnaliser la notification, vous pouvez spécifier votre propre classe de notification dans le fichier de configuration.
// config / failed - job - monitor . php
return [
...
' notification ' => App Notifications CustomNotificationForFailedJobMonitor::class,
...
La classe notifiable par défaut fournie par ce package utilise les clés channels
, mail
et slack
du fichier config
pour déterminer comment les notifications doivent être envoyées.
Si vous souhaitez personnaliser le notifiable, vous pouvez spécifier votre propre classe notifiable dans le fichier de configuration.
// config / failed - job - monitor . php
return [
' notifiable ' => App CustomNotifiableForFailedJobMonitor::class,
...
Pour filtrer les notifications, passez une fermeture au notificationFilter
.
// config / failed - job - monitor . php
return [
...
' notificationFilter ' => function ( Spatie FailedJobMonitor Notification $ notification ): bool
{
return true ;
}
. . .
Ce qui précède ne fonctionne que si Laravel ne prend pas en charge la sérialisation de fermeture. Ainsi, vous obtiendrez l'erreur suivante lorsque vous exécuterez php artisan config:cache
LogicException : Your configuration files are not serializable.
Il serait donc préférable de créer une classe distincte et d'utiliser un callable comme rappel.
<?php
namespace App Notifications ;
use Spatie FailedJobMonitor Notification ;
class FailedJobNotification
{
public static function notificationFilter ( Notification $ notification ): bool
{
return true ;
}
}
Et référencez-le dans le fichier de configuration.
// config / failed - job - monitor . php
return [
...
' notificationFilter ' => [ App Notifications FailedJobNotification::class, ' notificationFilter ' ],
...
Si vous avez configuré correctement le package, vous avez terminé. Vous recevrez une notification lorsqu'une tâche en file d'attente échoue.
Veuillez consulter CHANGELOG pour plus d'informations sur ce qui a changé récemment.
composer test
Veuillez consulter CONTRIBUER pour plus de détails.
Si vous avez trouvé un bug concernant la sécurité, veuillez envoyer un mail à [email protected] au lieu d'utiliser le suivi des problèmes.
Un grand merci à Egor Talantsev pour son aide à la création de v2
du package.
La licence MIT (MIT). Veuillez consulter le fichier de licence pour plus d'informations.