用途:在 iii 引擎中实现可靠的后台异步任务处理,功能定位类似 BullMQ、Celery、SQS。
主要能力:命名队列在 iii-config.yaml 的 queue_configs 下声明;标准队列并发处理任务,FIFO 队列保持顺序;TriggerAction.Enqueue({ queue }) 将任务投递到指定队列;失败任务按指数退避自动重试,直到 max_retries;重试耗尽的任务进入死信队列供检查;每个消费者函数接收任务负载与 messageReceiptId;通过一次生产者对多个消费者函数分别 enqueue 实现扇出。
使用方式:用 registerFunction 定义消费者,用 trigger({ ..., action: TriggerAction.Enqueue({ queue }) }) 投递任务,用 messageReceiptId 确认或跟踪单个任务;队列的 max_retries、concurrency、type、backoff_ms 在 queue_configs 中按队列配置。参考实现见 references/queue-processing.js,另有 Python 与 Rust 版本,完整配置参考见 references/iii-config.yaml。
适用场景:需要重试的可靠异步任务;顺序敏感的多阶段流水线(队列 A 的消费者再向队列 B 投递);单事件需并行处理时的扇出(如支付、通知、审计);重试时先查状态以保证幂等。
限制与边界:仅需即发即忘、无需重试或顺序时,应改用 iii-trigger-actions 的 TriggerAction.Void();失败任务需特殊处理或告警时,应改用 iii-dead-letter-queues;需要带分支的逐步编排时,应改用 iii-workflow-orchestration。扇出是模式而非队列配置项。应用示例前需先确认环境与安全约束。具体收费、价格与平台支持信息暂未提供。