Laravel SQS Queue Reader — это мощное расширение, предназначенное для простой интеграции внешних веб-перехватчиков в ваше приложение Laravel. Используя надежность и масштабируемость Amazon Simple Queue Service (SQS), это расширение гарантирует, что ваше приложение эффективно обрабатывает входящие веб-перехватчики, сводя к минимуму время простоя и повышая общую производительность.
Легко интегрируйте внешние веб-перехватчики в свое приложение Laravel без ущерба для производительности.
Используйте возможности Amazon SQS для постановки в очередь входящих веб-перехватчиков, обеспечивая асинхронную и параллельную обработку и гарантируя оптимальное время ответа.
SQS предоставляет надежную и масштабируемую инфраструктуру, гарантируя, что ваше приложение сможет обрабатывать различные нагрузки веб-перехватчиков без ущерба для стабильности.
Разработанный как расширение Laravel, Webhook Queue Reader легко интегрируется в ваш проект Laravel, следуя стандартам и соглашениям Laravel по кодированию.
Настройте параметры расширения в соответствии с требованиями вашего приложения, включая имена очередей, время ожидания видимости и другие настройки, специфичные для SQS.
Получите представление о процессе обработки веб-перехватчиков с помощью подробного журнала, который поможет вам устранять неполадки и эффективно контролировать систему.
Зарегистрируйте внешние веб-перехватчики в своем приложении Laravel, указав URL-адрес веб-перехватчика.
Входящие веб-перехватчики эффективно обрабатываются в очереди SQS, обеспечивая оптимальную обработку полезных данных веб-перехватчиков.
Используйте возможности асинхронной обработки SQS для обработки веб-перехватчиков в фоновом режиме, предотвращая любое влияние на время отклика вашего приложения.
Воспользуйтесь преимуществами автоматических повторных попыток SQS, гарантируя, что неудачные попытки обработки веб-перехватчика будут повторены без ручного вмешательства.
Пользовательский модуль чтения очереди SQS для проектов Laravel, который поддерживает необработанные полезные данные JSON и читает несколько сообщений. Laravel ожидает, что сообщения SQS будут генерироваться в определенном формате, который включает класс обработчика задания и сериализованное задание.
Примечание. Реализовано для чтения нескольких сообщений из очереди.
Эта библиотека очень полезна, если вы хотите анализировать сообщения из сторонних приложений, таких как полосы веб-перехватчиков, веб-перехватчики shopify, веб-перехватчики mailgun, пользовательские сообщения JSON и т. д.
Установите Custom Reader очереди 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. Эффективный, надежный и рассчитан на оптимальную производительность!
Для получения дополнительной информации об AWS SQS ознакомьтесь с официальной документацией.
Скрипт мы уже настроили, просто запустите команду:
composer test
Для формата тестового покрытия выполните команду:
composer test-coverage
Для анализа кода выполните команду:
composer analyse
Для формата кода выполните команду:
composer format
Пожалуйста, посетите CHANGELOG для получения дополнительной информации о том, что изменилось за последнее время.
Пожалуйста, смотрите ВКЛАД для получения подробной информации.
Если вы хотите внести свой вклад, вы можете протестировать его в реальном проекте 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 GrumPHP с задачей, которая запускает RectorPHP для ваших проектов Laravel.
Проверка списка запрещенных адресов электронной почты (черный список) - Список запрещенных IP-адресов (черный список) Проверка списка запрещенных адресов (черный список) проверяет 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 (MIT). Пожалуйста, смотрите файл лицензии для получения дополнительной информации.