Este pacote envia notificações se um trabalho na fila falhar. Pronto para uso, ele pode enviar uma notificação por correio e/ou Slack. Ele aproveita o sistema de notificação nativo do Laravel.
Investimos muitos recursos na criação dos melhores pacotes de código aberto. Você pode nos apoiar comprando um de nossos produtos pagos.
Agradecemos muito que você nos envie um cartão postal de sua cidade natal, mencionando qual(is) de nossos pacotes você está usando. Você encontrará nosso endereço em nossa página de contato. Publicamos todos os cartões postais recebidos em nosso mural virtual de cartões postais.
Para as versões 5.8 e 6.x do Laravel, use a v3.x deste pacote.
Você pode instalar o pacote via compositor:
composer require spatie/laravel-failed-job-monitor
Se você pretende usar notificações do Slack, você também deve instalar o cliente guzzle:
composer require guzzlehttp/guzzle
O provedor de serviços será registrado automaticamente.
Em seguida, você deve publicar o arquivo de configuração:
php artisan vendor:publish --tag=failed-job-monitor-config
Este é o conteúdo do arquivo de configuração padrão. Aqui você pode especificar o notificável para o qual as notificações devem ser enviadas. O notificável padrão usará as variáveis especificadas neste arquivo de configuração.
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 ' ),
],
];
A classe de notificação padrão fornecida por este pacote tem suporte para mail e Slack.
Se quiser personalizar a notificação, você pode especificar sua própria classe de notificação no arquivo de configuração.
// config / failed - job - monitor . php
return [
...
' notification ' => App Notifications CustomNotificationForFailedJobMonitor::class,
...
A classe notificável padrão fornecida por este pacote usa os channels
, mail
e chaves slack
do arquivo config
para determinar como as notificações devem ser enviadas
Se quiser personalizar o notificável, você pode especificar sua própria classe notificável no arquivo de configuração.
// config / failed - job - monitor . php
return [
' notifiable ' => App CustomNotifiableForFailedJobMonitor::class,
...
Para filtrar as notificações, passe um encerramento para o notificationFilter
.
// config / failed - job - monitor . php
return [
...
' notificationFilter ' => function ( Spatie FailedJobMonitor Notification $ notification ): bool
{
return true ;
}
. . .
O acima funciona apenas porque o Laravel não suporta serialização de encerramento. Assim, você receberá o seguinte erro ao executar php artisan config:cache
LogicException : Your configuration files are not serializable.
Portanto, seria melhor criar uma classe separada e usar um callable como retorno de chamada.
<?php
namespace App Notifications ;
use Spatie FailedJobMonitor Notification ;
class FailedJobNotification
{
public static function notificationFilter ( Notification $ notification ): bool
{
return true ;
}
}
E referencie-o no arquivo de configuração.
// config / failed - job - monitor . php
return [
...
' notificationFilter ' => [ App Notifications FailedJobNotification::class, ' notificationFilter ' ],
...
Se você configurou o pacote corretamente, está pronto. Você receberá uma notificação quando um trabalho na fila falhar.
Consulte CHANGELOG para obter mais informações sobre o que mudou recentemente.
composer test
Consulte CONTRIBUINDO para obter detalhes.
Se você encontrou um bug relacionado à segurança, envie um email para [email protected] em vez de usar o rastreador de problemas.
Um grande obrigado a Egor Talantsev por sua ajuda na criação v2
do pacote.
A licença MIT (MIT). Consulte Arquivo de licença para obter mais informações.