SuperAPI AI 工具集

iii-trigger-actions

通用与其它

查看项目

更新于 10-15 22:17

技能介绍

用途:在 iii 引擎中决定函数如何被调用,比较 RPC、消息队列与即发即弃三种模式,按任务需求选择同步、Void 或 Enqueue。

主要能力:同步(默认)会阻塞直到函数返回结果或超时;Void(TriggerAction.Void())即发即弃,立即返回 null,无重试保证;Enqueue(TriggerAction.Enqueue({ queue }))经命名队列路由,具备自动重试与退避,返回 messageReceiptId。选择指引:需要结果用同步,必须可靠完成用入队,可选副作用用 Void。

使用方式:调用 trigger() 并传入可选 action 参数。示例:await iii.trigger({ function_id: 'users::get', payload: { id } }) 为同步;iii.trigger({ function_id: 'analytics::track', payload: event, action: TriggerAction.Void() }) 为即发即弃;iii.trigger({ function_id: 'orders::process', payload: order, action: TriggerAction.Enqueue({ queue: 'payments' }) }) 为持久入队。CLI 可用 iii trigger --function-id=ID --payload=JSON,--timeout-ms 设置超时(默认 30s)。参考实现见 references/trigger-actions.js,另有 Python 与 Rust 版本。

适用场景:需要结果才能继续时用同步;日志、分析等可接受失败的副作用用 Void;支付、邮件、通知等必须可靠完成的任务用 Enqueue;也可在同一处理器中组合,如先同步校验再入队处理。命名队列可按工作负载配置重试与并发。

限制与边界:队列配置(重试、并发、FIFO)应使用 iii-engine-config;入队任务重试耗尽后的死信处理应使用 iii-dead-letter-queues;函数注册与触发绑定应使用 iii-functions-and-triggers。仅当核心问题是选择调用模式时使用本技能,不要作为无关任务的通用回退,应用示例前需确认环境与安全约束。