azure-oss / storage-queue-laravel
Azure Storage Queue driver for Laravel
Package info
github.com/Azure-OSS/azure-storage-queue-laravel-php
pkg:composer/azure-oss/storage-queue-laravel
Requires
- php: ^8.2
- azure-oss/storage-queue: ^1.0
- illuminate/queue: ^10|^11|^12|^13
- illuminate/support: ^10|^11|^12|^13
This package is not auto-updated.
Last update: 2026-06-26 01:53:25 UTC
README
Community-driven PHP SDKs for Azure, because Microsoft won't.
In November 2023, Microsoft officially archived their Azure SDK for PHP and stopped maintaining PHP integrations for most Azure services. No migration path, no replacement — just a repository marked read-only.
We picked up where they left off.
Our other packages:
-
azure-oss/storage-queue – Azure Storage Queue SDK
-
azure-oss/storage – Meta package with Blob, Queue + File Share SDKs
-
azure-oss/storage-blob – Azure Blob Storage SDK
-
azure-oss/storage-blob-flysystem – Flysystem adapter
-
azure-oss/storage-blob-laravel – Laravel filesystem driver
-
azure-oss/storage-blob-symfony – Symfony bridge for the Flysystem adapter
-
azure-oss/storage-file-share – Azure Storage File Share SDK (Under construction)
Install
composer require azure-oss/storage-queue-laravel
Documentation
You can read the documentation here.
Configuration
Add a connection to config/queue.php:
'connections' => [ 'azure' => [ 'driver' => 'azure-storage-queue', 'connection_string' => env('AZURE_STORAGE_CONNECTION_STRING'), 'queue' => env('AZURE_STORAGE_QUEUE', 'default'), 'retry_after' => 60, 'time_to_live' => null, 'create_queue' => false, ], ],
This connector supports shared key and SAS-based authentication via connection_string, or shared key via account_name + account_key. See the docs for configuration examples: https://azure-oss.github.io/category/storage-queue-laravel/installation
Per-message options
pushRaw() accepts retry_after and time_to_live options (seconds):
$queue->pushRaw($payload, null, [ 'retry_after' => 10, 'time_to_live' => 3600, ]);
Job expiration (important)
retry_after is the queue message visibility timeout. If your job runs longer than retry_after, the message can become visible again and another worker can pick it up, causing double processing.
Set retry_after higher than your longest-running jobs on this connection (and keep your worker --timeout lower than that). See Laravel's docs: https://laravel.com/docs/12.x/queues#job-expiration
License
This project is released under the MIT License. See LICENSE for details.