ترسل هذه الحزمة إشعارات في حالة فشل مهمة في قائمة الانتظار. يمكن إرسال إشعار خارج الصندوق عبر البريد و/أو 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 ' ],
...
إذا قمت بتكوين الحزمة بشكل صحيح، فقد انتهيت. ستتلقى إشعارًا عند فشل مهمة في قائمة الانتظار.
الرجاء مراجعة سجل التغيير لمزيد من المعلومات عما تغير مؤخرًا.
composer test
يرجى الاطلاع على المساهمة للحصول على التفاصيل.
إذا وجدت خطأً يتعلق بالأمان، فيرجى إرسال بريد إلكتروني إلى العنوان [email protected] بدلاً من استخدام أداة تعقب المشكلات.
شكرًا جزيلاً لإيجور تالانتسيف لمساعدته في إنشاء v2
من الحزمة.
رخصة معهد ماساتشوستس للتكنولوجيا (MIT). يرجى الاطلاع على ملف الترخيص لمزيد من المعلومات.