Este paquete envía notificaciones si falla un trabajo en cola. Desde el primer momento, puede enviar una notificación por correo y/o Slack. Aprovecha el sistema de notificación nativo de Laravel.
Invertimos muchos recursos en la creación de los mejores paquetes de código abierto. Puedes apoyarnos comprando uno de nuestros productos pagos.
Agradecemos mucho que nos envíe una postal desde su ciudad natal, mencionando cuál de nuestros paquetes está utilizando. Encontrarás nuestra dirección en nuestra página de contacto. Publicamos todas las postales recibidas en nuestro muro virtual de postales.
Para las versiones 5.8 y 6.x de Laravel, utilice la versión 3.x de este paquete.
Puede instalar el paquete a través del compositor:
composer require spatie/laravel-failed-job-monitor
Si tiene intención de utilizar las notificaciones de Slack, también debe instalar el cliente guzzle:
composer require guzzlehttp/guzzle
El proveedor del servicio quedará registrado automáticamente.
A continuación, debes publicar el archivo de configuración:
php artisan vendor:publish --tag=failed-job-monitor-config
Este es el contenido del archivo de configuración predeterminado. Aquí puede especificar el notificable al que se deben enviar las notificaciones. El notificable predeterminado utilizará las variables especificadas en este archivo de configuración.
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 clase de notificación predeterminada proporcionada por este paquete es compatible con correo y Slack.
Si desea personalizar la notificación, puede especificar su propia clase de notificación en el archivo de configuración.
// config / failed - job - monitor . php
return [
...
' notification ' => App Notifications CustomNotificationForFailedJobMonitor::class,
...
La clase notificable predeterminada proporcionada por este paquete utiliza los channels
, mail
y las claves slack
del archivo config
para determinar cómo se deben enviar las notificaciones.
Si desea personalizar el notificable, puede especificar su propia clase notificable en el archivo de configuración.
// config / failed - job - monitor . php
return [
' notifiable ' => App CustomNotifiableForFailedJobMonitor::class,
...
Para filtrar las notificaciones, pase un cierre a notificationFilter
.
// config / failed - job - monitor . php
return [
...
' notificationFilter ' => function ( Spatie FailedJobMonitor Notification $ notification ): bool
{
return true ;
}
. . .
Lo anterior funciona solo porque Laravel no admite la serialización de cierre. Por lo tanto, obtendrá el siguiente error cuando ejecute php artisan config:cache
LogicException : Your configuration files are not serializable.
Por lo tanto, sería mejor crear una clase separada y utilizar un invocable como devolución de llamada.
<?php
namespace App Notifications ;
use Spatie FailedJobMonitor Notification ;
class FailedJobNotification
{
public static function notificationFilter ( Notification $ notification ): bool
{
return true ;
}
}
Y haga referencia a él en el archivo de configuración.
// config / failed - job - monitor . php
return [
...
' notificationFilter ' => [ App Notifications FailedJobNotification::class, ' notificationFilter ' ],
...
Si configuró el paquete correctamente, ya está. Recibirás una notificación cuando falle un trabajo en cola.
Consulte CHANGELOG para obtener más información sobre los cambios recientes.
composer test
Consulte CONTRIBUCIÓN para obtener más detalles.
Si encuentra un error relacionado con la seguridad, envíe un correo electrónico a [email protected] en lugar de utilizar el rastreador de problemas.
Muchas gracias a Egor Talantsev por su ayuda en la creación de v2
del paquete.
La Licencia MIT (MIT). Consulte el archivo de licencia para obtener más información.