定制 edriving-limited/dynamic-sqs 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

edriving-limited/dynamic-sqs

最新稳定版本:2.3.0

Composer 安装命令:

composer require edriving-limited/dynamic-sqs

包简介

Adds support for custom SQS payloads in Laravel

README 文档

README

This package adds support for custom SQS payloads with your standard Laravel jobs.

Installation

First install the package using composer composer require edriving-limited/dynamic-sqs. Then publish the configuration files using php artisan vendor:publish.

You will also need to update the driver for your SQS connection to dynamic-sqs.

Setup

First, you should create your job class, the exact same way you would your standard Laravel jobs. Then, we need to create a "handler" class, this class is responsible for taking the payload from your SQS message and returning an instance of your job class.

This class should implement the JobHandlerContract and define a handle method, which returns a job instance.

use App\Jobs\SendWelcomeEmail;
use eDriving\DynamicSqs\JobHandlerContract;
use Illuminate\Contracts\Queue\ShouldQueue;

class SendWelcomeEmailHandler implements JobHandlerContract
{
    public function handle(array $payload): ShouldQueue
    {
        return SendWelcomeEmail($payload['data']['userId']);    
    }
}

With your handler class set up, we then need to define how to map any given SQS message, to a particular handler. To do this, open your newly published config/dynamic-sqs.php config file. In here, there are two properties we need to define, discoverer and map.

Discoverer

This property should reference a class, which is responsible for taking a given payload, and returning the "handler id". This ID is a value in your payload which will be used determine which handler to use for this message. One is set up for you already, which returns the "handler" value from the payload. You're free to create your own version of this class to suit your messages.

[
    'discoverer' => [\eDriving\DynamicSqs\Commands\DiscovererHandler::class, 'discover'],
]

Map

Finally, we need to map the handler ID's, to their handler classes. You do this by populating the map property with key => value pairs. The key being the handler ID, and the map being the class-string of the handler class.

[
    'map' => [
        'sendWelcomeEmail' => SendWelcomeEmailHandler::class 
    ]
]

统计信息

  • 总下载量: 34.28k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 3
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 3
  • Watchers: 0
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2023-05-02