Orchestrator 用户指南
队列项目保留策略
处理队列项目会生成大量事务,这些事务可能会迅速占用您的 Orchestrator 数据库。保留策略可帮助您有组织地释放数据库。
什么是保留策略?这是一项确保内置数据卸载功能的协议,方法是设置操作以在一段时间后从数据库中删除数据。 会发生什么? 由于数据库更轻,Cloud Orchestrator 的性能会更好。
对于指定队列,您配置的保留策略适用于同时满足以下条件的所有队列项目:
- 对于已完成的队列项目:
- 具有最终状态,例如“失败”、“成功”、“已放弃”、“已重试”或“已删除”。
- 已超过 X 天未修改,X 为保留期限。
- 对于未完成的队列项目:
- 状态为“新”。
- 已超过 X 天未修改,X 为保留期限。
正在进行但已推迟的队列项目的保留期限按如下方式计算:推迟日期前的天数 + 为保留期限配置的天数。
示例
- 您为队列 A 设置了保留期限为 30 天的删除操作。
- 属于队列 A 的队列项目 B 将推迟 10 天。
队列项目 B 将在 40 天后删除。
队列项目验证算法搜索所有队列,并按以下顺序根据四个属性确定哪些队列项目满足条件:
- 1 - 上次修改时间
- 2 - 结束处理时间
- 3 - 开始处理时间
- 4 - 创建时间
如果队列项目没有“上次修改时间”值 (1),或者该值为 null,则算法将查看“结束处理时间”值 (2)。如果“结束处理时间”值为 null,则算法将查看“开始处理时间”值 (3)。如果“开始处理时间”值为 null,则算法将查看“创建时间”值 (4),并根据找到的第一个非 null 值应用策略。
保留期是按照日历天数计算而得。因此,符合条件的队列项目将在 X+1 个日历日删除,X 表示保留持续时间,+1 表示删除作业在下一个日历日执行。
请注意,作业可能会在时间刚进入下一个日历日时执行,因此与保留期限的结束时间只有几个小时的间隔。
例如,假设您将保留期限设置为 1 天:
如果队列项目的最后修改日期为 10-06-2022 00:01:00(日历日的第一分钟)或 10-06-23:59:00(日历日的最后一分钟),则它符合在 6 月 12 日(6 月 10 日 + 1 天保留期 + 1 天后 = 6 月 12 日)运行的删除作业的条件。
因此:
- 我们会在下一个日历日存档您的队列项目数据,以确保至少将其保留 1 个日历日(保留期限),
- 我们的目标是确保在下一个日历日结束之前存档您的项目。
以下是保留策略的类型:
- 新创建队列的默认策略 - 系统将在 30 天后删除新队列中的所有事务,且删除操作无法撤销。这是内置选项。
- 自定义策略 - 在您选择的保留期限过后,系统将删除或存档所有事务。可以按照配置自定义保留策略部分中的说明配置此选项。
- 已完成的队列项目:
- 默认持续时间为 30 天。
- 最长持续时间为 180 天。
- 未完成的队列项目:
- 默认持续时间为 180 天。
- 最长持续时间为 540 天。
- 已完成的队列项目:
自定义保留策略具有以下结果:
- 它将删除早于指定持续时间的有效队列项目。
- 这一类型会删除超过指定持续时间的有效队列项目,但会将其数据存档到现有存储桶中,以供后续参考。这样,您可以在不丢失信息的情况下卸载 Orchestrator 数据库。
- 它会保留队列项目的唯一引用,以保证在应用策略后执行验证。
注意:包含已删除队列项目信息的 Insights 仪表板会继续显示正确的数据。
如果您不想丢失队列项目数据,但需要从 Orchestrator 数据库中卸载此信息,请存档队列项目。
先决条件:您需要存储桶来存储已存档的队列项目。
- 从“操作”下拉菜单中选择“存档”。
- 为已完成和未完成的队列项目选择“保留期限”。
对于已完成的队列项目,您可以选择 1 到 180 之间的值,默认值为 30。
对于未完成的队列项目,您可以选择 180 到 540 之间的值,默认值 180。
在此持续时间结束时,将删除在此期间尚未更新的所有队列项目(包括队列项目事件和注释),并将其信息存储在目标存储桶中。
- 选择一个目标存储桶来存储存档项目。
要检索存档信息,请从关联的存储桶中访问存档文件。
注意 1:您可以使用 Orchestrator 存储桶,也可以链接外部存储桶。
注意 2:您使用的存储桶不得为只读存储桶,以便系统可通过存档操作向其中添加项目。
注意 3:您可以使用相同的存储桶存档来自不同队列的队列项目。
注意 4:此字段仅适用于“存档”选项。
注意 5:加密队列项目的特定数据和输出数据在存储桶中可见,因为存档操作会在检索时解密数据并将其导出到目标存储位置。
注意 6:系统会在“租户”>“审核”页面上记录成功的存档操作,并会通过“操作”类型将其识别为存档。
注意 7:如果错误中断了存档操作,则会收到警示通知,以便修复错误。系统会在下次运行删除作业时(下一个日历日)重试存档操作。在成功重试存档之前,无法查看或访问受影响的队列项目。
.zip
文件,其路径为:
“Archive/Queues/Queue-{queue_key}/{archiving_operation_date}-{archiving_operation_timestamp}.zip”,其中各项含义如下:
- {queue_key} - 包含队列项目的队列的唯一标识符
- {archiving_operation_date} - 生成存档时的 UTC 日期,采用
yyyy-MM-dd
格式 -
{archiving_operation_timestamp} - 生成存档时的 UTC 时间,采用
HH-mm-ss-fff
格式例如,存档文件可以命名为Archive/Queues/Queue-1d1ad84a-a06c-437e-974d-696ae66e47c2/2022-05-26-03-00-08-496.zip
。
.zip
文件将显示具有相同名称语法的 .csv
文件:
“队列 -{queue_key}-{archiving_operation_date}-{archiving_operation_timestamp}.csv”。
.csv
文件包含有关已存档队列项目的以下信息:
如果您判断经过处理的队列项目数据不再有用,则可以从 Orchestrator 数据库中删除所有这些信息。
- 从“操作”下拉菜单中选择“删除”。
- 为已完成和未完成的队列项目选择“保留期限”。
对于已完成的队列项目,您可以选择 1 到 180 之间的值,默认值为 30。
对于未完成的队列项目,您可以选择 180 到 540 之间的值,默认值 180。
在此持续时间结束时,将永久删除在此期间尚未更新的所有队列项目(包括队列项目事件和注释)。
要在客户端中合并保留策略,请在 Swagger 文件中使用队列保留 API 的专用端点:
- GET
/odata/QueueRetention
- 返回所有活动策略的列表,其中包含策略操作、保留持续时间(以天为单位)、要应用策略的队列 ID 等信息。 - GET
/odata/QueueRetention({key})
- 返回有关指定队列的策略信息。 - PUT
/odata/QueueRetention({key})
- 更新有关指定队列的策略信息。 - DELETE
/odata/QueueRetention({key})
- 将指定的队列策略重置为默认值(保留 30 天后删除)。