oniva/jobqueue-azurequeuestorage
最新稳定版本:0.1.1
Composer 安装命令:
composer require oniva/jobqueue-azurequeuestorage
包简介
A Flowpack.JobQueue.Common implementation to support Azure Queue Storage as backend
README 文档
README
A job queue backend for the Flowpack.JobQueue.Common package based on Azure Queue Storage.
Features
- Azure Queue Storage Integration - Built on Azure's reliable queue service
- Claim Check Pattern - Automatically stores large job payloads (>32KB) in Azure Blob Storage to bypass queue message size limits
- Priority Queue - Optionally use a separate queue for high-priority jobs that will always be processed first
- Poison Queue - Optionally move failed jobs to a dead-letter queue for debugging and manual intervention
- Configurable Options - Customize timeouts, polling intervals, and more via settings
Installation
composer require oniva/jobqueue-azurequeuestorage
Configuration
Add the following to your Flow application's Settings.yaml:
Flowpack: JobQueue: Common: queues: 'my-azure-storage-queuee': className: 'Oniva\JobQueue\AzureQueueStorage\Queue\AzureQueueStorage' options: connectionString: DefaultEndpointsProtocol=https;AccountName=myaccountname;AccountKey=myaccountkey;EndpointSuffix=core.windows.net
Full example configuration with all options:
Flowpack: JobQueue: Common: queues: 'my-azure-storage-queue': className: 'Oniva\JobQueue\AzureQueueStorage\Queue\AzureQueueStorage' maximumNumberOfReleases: 3 executeIsolated: true options: connectionString: DefaultEndpointsProtocol=https;AccountName=myaccountname;AccountKey=myaccountkey;EndpointSuffix=core.windows.net defaultTimeout: 30 # Default timeout in seconds claimCheckThreshold: 32768 # Message size threshold for claim check pattern (in bytes) defaultTtl: 604800 # Default message TTL in seconds (7 days max for Azure Storage Queue) pollingInterval: 1000 # Polling interval in milliseconds blobContainer: jobqueue-blobs # Blob container name for claim check messages usePriorityQueue: true # Enable priority queueing usePoisonQueue: true # Enable poison queue for failed jobs prioritySuffix: '-priority' # Suffix for priority queue poisonSuffix: '-poison' # Suffix for poison queue
Priority Queueing
To enable priority queueing, set usePriorityQueue to true.
This allows you to submit high-priority jobs that will be processed before regular jobs.
$queue->submit($payload, ['priority' => true]);
Caveats
- 7-day message limit - Azure Queue Storage automatically deletes messages after 7 days maximum, even if unprocessed
- 64KB queue message size - While the claim check pattern handles larger payloads, it adds latency and blob storage costs
- No native queue priorities - Priority queues are simulated by polling multiple queues, which increases API calls
- Approximate counts only - Queue metrics like countReady() are estimates, not exact counts, due to Azure's distributed nature
- No message ordering guarantee - Azure Queue Storage doesn't guarantee FIFO ordering, messages may be processed out of sequence
统计信息
- 总下载量: 0
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-05-30