View on GitHub

WePush

专注批量推送的小而美的工具,目前支持:模板消息-公众号、模板消息-小程序、微信客服消息、微信企业号/企业微信消息、阿里云短信、阿里大于模板短信 、腾讯云短信、云片网短信、E-Mail、HTTP请求、钉钉、华为云短信、百度云短信、又拍云短信、七牛云短信

ADR-0007:Artifact Store 协议和保留策略

背景

Audience Snapshot、运行结果、完整响应、日志和插件包可能远大于数据库适合保存的范围。Standalone 需要零依赖本地存储,Server 和 HA 模式需要所有 Service 与 Agent 可访问的共享存储。

决策

存储实现

S3-compatible 最小能力:

对象命名

<environment>/<workspaceId>/<artifactType>/<yyyy>/<mm>/<artifactId>

上传和下载

完整性和加密

生命周期状态

UPLOADING → READY → DELETING → DELETED
          ↘ FAILED

默认保留策略

Artifact 类型 默认保留
Audience Snapshot 被 Job/Run 引用期间保留,最后引用释放后再保留 30 天
成功、失败、未知、未发送结果 Run 结束后 90 天
结构化运行日志 Run 结束后 30 天
完整 Provider 响应体 Run 结束后 7 天
导出文件和临时下载 创建后 24 小时
未完成 Multipart Upload 24 小时后 Abort(对象存储 Lifecycle 兜底)
Provider 插件包 存在 Agent、Job 或 Run Snapshot 引用期间保留

Local Store 等价语义

Local Store 使用相同 Artifact ID、状态、校验和和保留规则。写入先进入临时文件,Flush、fsync 和校验后原子移动到最终路径。路径由 Store 生成,不使用用户输入拼接。

结果

该方案使 Standalone 保持自包含,同时让 Server 能使用兼容对象存储。Agent 直传避免 Service 成为大文件带宽瓶颈。代价是需要管理 Presigned URL、Multipart 清理和数据库/对象存储的最终一致性。

参考