squigg / azure-queue-laravel
Laravel Queue Driver for Microsoft Azure Storage Queue
Installs: 161 357
Dependents: 1
Suggesters: 0
Security: 0
Stars: 44
Watchers: 5
Forks: 24
Open Issues: 3
Requires
- php: ^8.1
- illuminate/queue: ^10.0|^11.0
- microsoft/azure-storage-queue: ~1.3.0
Requires (Dev)
- ext-json: *
- mockery/mockery: ~1.0
- orchestra/testbench: ^8.0|^9.0
- php-coveralls/php-coveralls: ~2.0
- phpunit/phpunit: ^10.0
This package is auto-updated.
Last update: 2024-11-30 09:48:37 UTC
README
PHP Laravel Queue Driver package to support Microsoft Azure Storage Queues
Prerequisites
- Laravel 5.2 - 8.x (not tested on previous versions)
- PHP 5.6+ for Laravel 5.2+
- PHP 7+ for Laravel 5.5+
- PHP 7.1+ for Laravel 5.6+
- PHP 7.2+ for Laravel 6+
- PHP 7.3+ for Laravel 8+
- PHP 8.0+ for Laravel 9+
- PHP 8.1+ for Laravel 10+
- PHP 8.1+ for Laravel 11+
- Microsoft Azure Storage Account and Storage Account Key
- Queue container created through Azure Portal or via Azure CLI or PowerShell
Installation
Install using composer
You can find this library on Packagist.
Require this package in your composer.json
. The version numbers will follow Laravel.
Laravel 11.x
"squigg/azure-queue-laravel": "^11.0"
composer require squigg/azure-queue-laravel:^11.0
Laravel 10.x
"squigg/azure-queue-laravel": "^10.0"
composer require squigg/azure-queue-laravel:^10.0
Laravel 9.x
"squigg/azure-queue-laravel": "^9.0"
composer require squigg/azure-queue-laravel:^9.0
Laravel 8.x
"squigg/azure-queue-laravel": "^8.0"
composer require squigg/azure-queue-laravel:^8.0
Laravel 7.x
"squigg/azure-queue-laravel": "^7.0"
composer require squigg/azure-queue-laravel:^7.0
Laravel 6.x
"squigg/azure-queue-laravel": "^6.0"
composer require squigg/azure-queue-laravel:^6.0
Laravel 5.8.x
"squigg/azure-queue-laravel": "5.8.*"
composer require squigg/azure-queue-laravel:5.8.*
Laravel 5.7.x
"squigg/azure-queue-laravel": "5.7.*"
composer require squigg/azure-queue-laravel:5.7.*
Laravel 5.6.x
"squigg/azure-queue-laravel": "5.6.*"
composer require squigg/azure-queue-laravel:5.6.*
Laravel 5.5.x
"squigg/azure-queue-laravel": "5.5.*"
composer require squigg/azure-queue-laravel:5.5.*
Laravel 5.4.x
"squigg/azure-queue-laravel": "5.4.*"
composer require squigg/azure-queue-laravel:5.4.*
Laravel 5.3.x
"squigg/azure-queue-laravel": "5.3.*"
composer require squigg/azure-queue-laravel:5.3.*
Laravel 5.2.x
"squigg/azure-queue-laravel": "5.2.*"
composer require squigg/azure-queue-laravel:5.2.*
For versions 5.3 and older only
Add the following pear repository in your composer.json
file required for the Microsoft Azure SDK
(v5.4+ uses the microsoft/azure-storage
package instead, and v5.6+ uses microsoft/azure-storage-queue
):
"repositories": [
{
"type": "pear",
"url": "http://pear.php.net"
}
],
Update Composer dependencies
composer update
Configuration
Add Provider
If you are not using Laravel auto package discovery, add the ServiceProvider to your providers
array in config/app.php
:
'Squigg\AzureQueueLaravel\AzureQueueServiceProvider',
For Lumen (5.x) you will need to add the provider to bootstrap/app.php
:
$app->register(Squigg\AzureQueueLaravel\AzureQueueServiceProvider::class);
Add Azure queue configuration
Add the following to the connections
array in config/queue.php
, and
fill out your own connection data from the Azure Management portal:
'azure' => [
'driver' => 'azure', // Leave this as-is
'protocol' => 'https', // https or http
'accountname' => env('AZURE_QUEUE_STORAGE_NAME'), // Azure storage account name
'key' => env('AZURE_QUEUE_KEY'), // Access key for storage account
'queue' => env('AZURE_QUEUE_NAME'), // Queue container name
'timeout' => 60, // Seconds before a job is released back to the queue
'endpoint' => env('AZURE_QUEUE_ENDPOINTSUFFIX'), // Optional endpoint suffix if different from core.windows.net
'queue_endpoint'=> env('AZURE_QUEUE_ENDPOINT'), // Optional endpoint for custom addresses like http://localhost/my_storage_name
],
Add environment variables into your .env
file to set the above configuration parameters:
AZURE_QUEUE_STORAGE_NAME=xxx
AZURE_QUEUE_KEY=xxx
AZURE_QUEUE_NAME=xxx
AZURE_QUEUE_ENDPOINTSUFFIX=xxx
AZURE_QUEUE_ENDPOINT=xxx
Set the default Laravel queue
Update the default queue used by Laravel by setting the QUEUE_CONNECTION
value in your .env
file to azure
.
QUEUE_CONNECTION=azure
This setting is QUEUE_DRIVER
in older versions of Laravel.
Usage
Use the normal Laravel Queue functionality as per the documentation.
Remember to update the default queue by setting the QUEUE_DRIVER
value in your .env
file to azure
.
Changelog
2023-03-30 - V11.0 - Support for Laravel 11.x
2023-03-17 - V10.0 - Support for Laravel 10.x
2022-03-17 - V9.0 - Support for Laravel 9.x
2021-10-16 - V8.1 - Support for PHP 8
2020-09-19 - V8.0 - Support for Laravel 8.x (composer dependency and test refactoring only)
2020-06-04 - V7.0 - Support for Laravel 7.x (composer dependency and test refactoring only)
2020-06-04 - V6.0 - Support for Laravel 6.x (composer dependency changes only)
2019-07-13 - V5.8 - Support for Laravel 5.8 (composer dependency and test changes only)
2019-07-13 - V5.7.1 - Fix invalid signature on call to base Laravel Queue method
2018-09-04 - V5.7 - Support for Laravel 5.7 (composer dependency changes only)
2018-02-07 - V5.6 - Switch to GA version of Microsoft Azure Storage PHP API. Support Laravel 5.6 (composer.json changes only). Update dev dependencies to latest versions.
2017-09-11 - V5.5 - Support Laravel 5.5 and PHP7+ only. Update Azure Storage API to 0.18
2017-09-11 - V5.4 - Update Azure Storage API to 0.15 (no breaking changes)
License
Released under the MIT License. Based on Alex Bouma's Laravel 4 package, updated for Laravel 5.