oniva/jobqueue-azurequeuestorage
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-queue': 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 polling timeout in seconds (how long to wait for a message) visibilityTimeout: 300 # Default visibility timeout in seconds (how long message stays hidden during processing), note that this must exceed the maximum expected job duration 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 preservePoisonPayload: true # Preserve the original payload for failed jobs in the poison queue 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]);
Poison Queue
To enable the poison queue, set usePoisonQueue to true. Failed jobs (those that exceed
maximumNumberOfReleases) are automatically moved to a dead-letter queue for inspection.
By default, only metadata is stored in the poison queue. To preserve the original payload for
retry or debugging, also set preservePoisonPayload: true.
To retry failed jobs, run a worker directly against the poison queue:
./flow flowpack.jobqueue.common:job:work my-azure-storage-queue-poison
Note: jobs being processed from the poison queue will not be re-poisoned on failure — they are left visible in the queue for manual inspection instead.
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
- Poison queue retry is manual - Failed jobs are moved to a dead-letter queue but not automatically retried.
oniva/jobqueue-azurequeuestorage 适用场景与选型建议
oniva/jobqueue-azurequeuestorage 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 0 次下载、GitHub Stars 达 1, 最近一次更新时间为 2025 年 05 月 30 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 oniva/jobqueue-azurequeuestorage 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 oniva/jobqueue-azurequeuestorage 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 0
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 15
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-05-30