|
1 |
| -Docs |
| 1 | +# Simple SQS Extended Client |
| 2 | +## Introduction |
| 3 | + |
| 4 | + |
| 5 | +Simple SQS Extended Client is a Laravel queue driver that was designed to work around the AWS SQS 256KB payload size limits. This queue driver will automatically serialize large payloads to a disk (typically S3) and then unserialize them at run time. |
| 6 | + |
| 7 | +## Support |
| 8 | + |
| 9 | +You may request professional support by email [email protected]. All requests for support require a $200 / hour fee. All other support will be provided by the open source community. |
| 10 | + |
| 11 | +## Install |
| 12 | + |
| 13 | +1. First create a disk that will hold all of your large SQS payloads. |
| 14 | + |
| 15 | +> We highly recommend you use a _private_ bucket when storing SQS payloads. Payloads can contain sensitive information and should never be shared publicly. |
| 16 | +
|
| 17 | +2. Run `composer require simplesoftwareio/simple-sqs-extended-client "~1"` to install the queue driver. |
| 18 | + |
| 19 | +3. Then, add the following default queue settings to your `queue.php` file. |
| 20 | + |
| 21 | +``` |
| 22 | + /* |
| 23 | + |-------------------------------------------------------------------------- |
| 24 | + | SQS Disk Queue Configuration |
| 25 | + |-------------------------------------------------------------------------- |
| 26 | + | |
| 27 | + | Here you may configure the SQS disk queue driver. It shares all of the same |
| 28 | + | configuration options from the built in Laravel SQS queue driver. The only added |
| 29 | + | option is `disk_options` which are explained below. |
| 30 | + | |
| 31 | + | always_store: Determines if all payloads should be stored on a disk regardless if they are over SQS's 256KB limit. |
| 32 | + | cleanup: Determines if the payload files should be removed from the disk once the job is processed. Leaveing the |
| 33 | + | files behind can be useful to replay the queue jobs later for debugging reasons. |
| 34 | + | disk: The disk to save SQS payloads to. This disk should be configured in your Laravel filesystems.php config file. |
| 35 | + | prefix The prefix (folder) to store the payloads with. This is useful if you are sharing a disk with other SQS queues. |
| 36 | + | Using a prefix allows for the queue:clear command to destroy the files separately from other sqs-disk backed queues |
| 37 | + | sharing the same disk. |
| 38 | + | |
| 39 | + */ |
| 40 | + 'sqs-disk' => [ |
| 41 | + 'driver' => 'sqs-disk', |
| 42 | + 'key' => env('AWS_ACCESS_KEY_ID'), |
| 43 | + 'secret' => env('AWS_SECRET_ACCESS_KEY'), |
| 44 | + 'prefix' => env('SQS_PREFIX', 'https://sqs.us-east-1.amazonaws.com/your-account-id'), |
| 45 | + 'queue' => env('SQS_QUEUE', 'default'), |
| 46 | + 'suffix' => env('SQS_SUFFIX'), |
| 47 | + 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'), |
| 48 | + 'after_commit' => false, |
| 49 | + 'disk_options' => [ |
| 50 | + 'always_store' => false, // Decides if all payloads should be stored on the disk |
| 51 | + 'cleanup' => false, //Decides if the payloads should be removed from the disk when the job is completed |
| 52 | + 'disk' => env('SQS_DISK'), |
| 53 | + 'prefix' => 'stage', // The prefix to apply to the files before beign strored on the disk |
| 54 | + ], |
| 55 | + ], |
| 56 | +
|
| 57 | +4. Boot up your queues and profit without having to worry about SQS's 256KB limit :) |
| 58 | +``` |
0 commit comments