يعد Laravel SQS Queue Reader امتدادًا قويًا مصممًا لدمج خطافات الويب الخارجية بسلاسة في تطبيق Laravel الخاص بك. من خلال الاستفادة من موثوقية Amazon Simple Queue Service (SQS) وقابلية التوسع، يضمن هذا الامتداد أن يقوم تطبيقك بمعالجة خطافات الويب الواردة بكفاءة، مما يقلل من وقت التوقف عن العمل ويعزز الأداء العام.
يمكنك دمج خطافات الويب الخارجية بسهولة في تطبيق Laravel الخاص بك دون المساس بالأداء.
استفد من قوة Amazon SQS في وضع خطافات الويب الواردة في قائمة الانتظار، مما يسمح بالمعالجة غير المتزامنة والمتوازية، مما يضمن أوقات الاستجابة المثالية.
يوفر SQS بنية تحتية قوية وقابلة للتطوير، مما يضمن قدرة تطبيقك على التعامل مع أحمال خطاف الويب المتنوعة دون المساس بالاستقرار.
تم تصميم Webhook Queue Reader باعتباره امتدادًا لـ Laravel، وهو يتكامل بسلاسة مع مشروع Laravel الخاص بك، وفقًا لمعايير واتفاقيات التشفير الخاصة بـ Laravel.
قم بتخصيص إعدادات الامتداد لتتوافق مع متطلبات التطبيق الخاص بك، بما في ذلك أسماء قوائم الانتظار، ومهلة الرؤية، والتكوينات الأخرى الخاصة بـ SQS.
احصل على رؤى حول تدفق معالجة خطاف الويب من خلال التسجيل التفصيلي، مما يساعدك على استكشاف أخطاء النظام وإصلاحها ومراقبتها بفعالية.
قم بتسجيل خطافات الويب الخارجية باستخدام تطبيق Laravel الخاص بك عن طريق توفير عنوان URL لخطاف الويب.
تتم معالجة خطافات الويب الواردة بكفاءة من خلال قائمة انتظار SQS، مما يضمن التعامل الأمثل مع حمولات خطاف الويب.
استفد من إمكانات المعالجة غير المتزامنة لـ SQS للتعامل مع خطافات الويب في الخلفية، مما يمنع أي تأثير على أوقات استجابة التطبيق الخاص بك.
استفد من عمليات إعادة المحاولة التلقائية في SQS، مما يضمن إعادة محاولة محاولات معالجة خطاف الويب الفاشلة دون تدخل يدوي.
قارئ قائمة انتظار SQS مخصص لمشاريع Laravel الذي يدعم حمولات JSON الأولية ويقرأ رسائل متعددة. يتوقع Laravel أن يتم إنشاء رسائل SQS بتنسيق محدد يتضمن فئة معالج الوظيفة ومهمة متسلسلة.
ملاحظة: تم تنفيذه لقراءة رسائل متعددة من قائمة الانتظار.
تعد هذه المكتبة مفيدة جدًا عندما تريد تحليل الرسائل من تطبيقات الطرف الثالث مثل خطافات الويب الشريطية وخطافات الويب الخاصة بشوبيفاي وخطافات الويب mailgun ورسائل JSON المخصصة وما إلى ذلك.
قم بتثبيت قارئ قائمة انتظار SQS المخصص لـ Laravel عبر الملحن:
composer require palpalani/laravel-sqs-queue-json-reader
يمكنك نشر ملف التكوين وتكوين إعدادات SQS في ملف تكوين Laravel.
php artisan vendor:publish --provider= " palPalaniSqsQueueReaderSqsQueueReaderServiceProvider " --tag= " config "
هذه هي محتويات ملف التكوين المنشور:
/**
* List of plain SQS queues and their corresponding handling classes
*/
return [
// Separate queue handler with corresponding queue name as key.
' handlers ' => [
' stripe-webhooks ' => [
' class ' => App Jobs StripeHandler::class,
' count ' => 10 ,
],
' mailgun-webhooks ' => [
' class ' => App Jobs MailgunHandler::class,
' count ' => 10 ,
]
],
// If no handlers specified then default handler will be executed.
' default-handler ' => [
// Name of the handler class
' class ' => App Jobs SqsHandler::class,
// Number of messages need to read from SQS.
' count ' => 1 ,
]
];
إذا لم يتم العثور على قائمة الانتظار في صفيف "المعالجات"، فسيتم تمرير حمولة SQS إلى المعالج الافتراضي.
قم بتسجيل خطافات الويب الخاصة بك باستخدام تطبيق Laravel الخاص بك.
قم بإضافة اتصال sqs-json
إلى الملف config/queue.php، على سبيل المثال:
[
// Add new SQS connection
' sqs-json ' => [
' driver ' => ' sqs-json ' ,
' key ' => env ( ' AWS_ACCESS_KEY_ID ' , '' ),
' secret ' => env ( ' AWS_SECRET_ACCESS_KEY ' , '' ),
' prefix ' => env ( ' AWS_SQS_PREFIX ' , ' https://sqs.us-west-2.amazonaws.com/1234567890 ' ),
' queue ' => env ( ' AWS_SQS_QUEUE ' , ' external-webhooks ' ),
' region ' => env ( ' AWS_DEFAULT_REGION ' , ' us-west-2 ' ),
],
]
في ملف .env الخاص بك، اختر sqs-json كبرنامج تشغيل قائمة الانتظار الافتراضي الجديد:
QUEUE_DRIVER=sqs-json
استمتع بمعالجة خطاف الويب السلسة والموثوقة والقابلة للتطوير!
إذا كنت تخطط لدفع رسائل عادية من Laravel، فيمكنك الاعتماد على DispatcherJob:
use palPalani SqsQueueReader Jobs DispatcherJob ;
class ExampleController extends Controller
{
public function index ()
{
// Dispatch job with some data.
$ job = new DispatcherJob ([
' music ' => ' Ponni nathi from PS-1 ' ,
' singer ' => ' AR. Rahman ' ,
' time ' => time ()
]);
// Dispatch the job as you normally would
// By default, your data will be encapsulated in 'data' and 'job' field will be added
$ this -> dispatch ( $ job );
// If you wish to submit a true plain JSON, add setPlain()
$ this -> dispatch ( $ job -> setPlain ());
}
}
سوف يقوم الكود أعلاه بدفع كائن JSON التالي إلى قائمة انتظار SQS:
{ "job" : " App \ Jobs \ SqsHandler@handle " , "data" :{ "music" : " Sample SQS message " , "singer" : " AR. Rahman " , "time" : 1464511672 }}
لا يتم استخدام حقل "الوظيفة" في الواقع. يتم الاحتفاظ به فقط للتوافق مع Laravel Framework.
قم بتشغيل الأمر التالي لاختبار المهمة المرسلة.
php artisan queue:work sqs-json
production
، استخدم المشرف مع التكوين التالي.
[program:sqs-json-reader]
process_name=%(program_name)s_%(process_num)02d
command=php /var/html/app/artisan queue:work sqs-json --sleep=60 --timeout=10 --tries=2 --memory=128 --daemon
directory=/var/html/app
autostart=true
autorestart=true
startretries=10
user=root
numprocs=1
redirect_stderr=true
stdout_logfile=/var/html/app/horizon.log
stderr_logfile=/tmp/horizon-error.log
stopwaitsecs=3600
priority=1000
إذا كنت تستخدم اتصالات متعددة، فقم بتكرار تكوين المشرف أعلاه وقم بتغيير اسم الاتصال.
إذا كان تطبيق جهة خارجية أو بوابة API لتطبيق SQS يقوم بإنشاء رسائل JSON ذات تنسيق مخصص، فما عليك سوى إضافة معالج في ملف التكوين وتنفيذ فئة معالج كما يلي:
use Illuminate Contracts Queue Job as LaravelJob ;
class SqsHandlerJob extends Job
{
/**
* @var null|array $data
*/
protected $ data ;
/**
* @param LaravelJob $job
* @param null|array $data
*/
public function handle ( LaravelJob $ job , ? array $ data ): void
{
// This is incoming JSON payload, already decoded to an array
var_dump ( $ data );
// Raw JSON payload from SQS, if necessary
var_dump ( $ job -> getRawBody ());
}
}
ملحوظة:
تأكد من تكوين تطبيق Laravel الخاص بك باستخدام بيانات اعتماد وأذونات AWS اللازمة للتفاعل مع SQS.
قم بتحسين إمكانيات معالجة الخطاف على الويب لتطبيق Laravel الخاص بك باستخدام Laravel Webhook Queue Reader. فعالة وموثوقة ومصممة لتحقيق الأداء الأمثل!
لمزيد من المعلومات حول AWS SQS، تحقق من المستندات الرسمية.
لقد قمنا بالفعل بتكوين البرنامج النصي، فقط قم بتشغيل الأمر:
composer test
للحصول على تنسيق تغطية الاختبار، قم بتشغيل الأمر:
composer test-coverage
لتحليل التعليمات البرمجية، قم بتشغيل الأمر:
composer analyse
لتنسيق التعليمات البرمجية، قم بتشغيل الأمر:
composer format
الرجاء مراجعة سجل التغيير للحصول على مزيد من المعلومات حول ما تغير مؤخرًا.
يرجى الاطلاع على المساهمة للحصول على التفاصيل.
إذا كنت تريد المساهمة، فقد ترغب في اختبارها في مشروع Laravel حقيقي:
/laravel-sqs-queue-json-reader
، أنشئ فرعًا للإصلاح، على سبيل المثال feature/awesome-feature
. قم بتثبيت الحزم في composer.json
الخاص بتطبيقك:
{
// ...
"require" : {
"palpalani/laravel-sqs-queue-json-reader" : "*" ,
} ,
"minimum-stability" : "dev" ,
"repositories" : [
{
"type" : "path" ,
"url" : "path/to/location"
}
] ,
// ...
}
الآن، قم بتشغيل composer update
.
يقوم GrumPHP rector بمهمة GrumPHP بمهمة تقوم بتشغيل RectorPHP لمشاريع Laravel الخاصة بك.
التحقق من قائمة رفض البريد الإلكتروني (القائمة السوداء) - سيقوم مدقق التحقق من قائمة الرفض (القائمة السوداء) باختبار عنوان IP لخادم البريد مقابل أكثر من 50 قائمة سوداء للبريد الإلكتروني تعتمد على DNS. (وتسمى عادة القائمة السوداء في الوقت الفعلي أو DNSBL أو RBL).
Spamassassin درجة البريد العشوائي لرسائل البريد الإلكتروني يتحقق من درجة البريد العشوائي لمحتويات البريد الإلكتروني باستخدام قاعدة بيانات Spamassassin.
إشعارات تسجيل الدخول Laravel إشعار حدث تسجيل الدخول لمشاريع Laravel. افتراضيًا، سيتم إرسال الإشعارات إلى بيئة الإنتاج فقط.
Laravel Toastr تنفذ toastr.js لـ Laravel. Toastr.js هي مكتبة Javascript للإشعارات غير المحظورة.
Beast Beast عبارة عن لقطة شاشة كخدمة تستخدم Nodejs وChrome وAws Lamda. تحويل صفحة ويب إلى صورة باستخدام Chrome بدون رأس، يأخذ لقطة شاشة لأي محتوى URL/Html محدد ويعيد المخزن المؤقت المشفر باستخدام Base64.
توصيات منتجات التجارة الإلكترونية: تحليل سجل طلبات العملاء والتوصية بالمنتجات للعملاء الجدد مما يتيح زيادة حجم المبيعات.
يرجى مراجعة سياستنا الأمنية حول كيفية الإبلاغ عن الثغرات الأمنية.
إذا اكتشفت خطأ ما أو كان لديك سؤال أو طلب ميزة، فيرجى إرسال مشكلة مفصلة، وانتظار المساعدة.
رخصة معهد ماساتشوستس للتكنولوجيا (MIT). يرجى الاطلاع على ملف الترخيص لمزيد من المعلومات.