队列项目保留策略
处理队列项目会生成大量事务,这些事务可能会迅速占用您的 Orchestrator 数据库。保留策略可帮助您有组织地释放数据库。
什么是保留策略?这是一项确保内置数据卸载功能的协议,方法是设置操作以在一段时间后从数据库中删除数据。 会发生什么? 由于数据库更轻,Cloud Orchestrator 的性能会更好。
对于指定队列,您配置的保留策略适用于同时满足以下条件的所有队列项目:
- 具有最终状态,例如失败、成功、已放弃、重试或已删除,以及
- 上次修改时间为 X 天前,X 为保留期限。
队列项目验证算法搜索所有队列,并按以下顺序根据四个属性确定哪些队列项目满足条件:
- 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 个日历日(保留期限),
- 我们的目标是确保在下一个日历日结束之前存档您的项目。
以下是保留策略的类型:
- 新创建队列的默认策略 - 属于新队列一部分的所有事务都无限期保留在配置的数据库中。这是内置选项。
重要提示:
强烈建议您存档或删除队列项目。这样可以防止数据库大小增加并导致性能下降。
- 现有队列的默认策略 - 所有现有事务都无限保留在配置的数据库中。
-
自定义策略 - 在您选择的保留期限(最长 180 天)后,系统将删除或存档所有事务,或者将所有事务无限期保留在配置的数据库中。可以按照配置自定义保留策略一节中的说明配置此选项。
自定义保留策略具有以下结果:
- It keeps the valid queue items in your configured database.
- 它将删除早于指定持续时间的有效队列项目。
- 这一类型会删除超过指定持续时间的有效队列项目,但会将其数据存档到现有存储桶中,以供后续参考。这样,您可以在不丢失信息的情况下卸载 Orchestrator 数据库。
- 它会保留队列项目的唯一引用,以保证在应用策略后执行验证。
注意:包含已删除队列项目信息的 Insights 仪表板会继续显示正确的数据。
后台作业每天在您的服务器不忙时运行,并执行所有保留策略所需的操作。
最初,需要处理大量数据。为避免对运营性能产生任何影响,该作业可能需要大约一个月的时间来解析其数据积压并将其精准定位到各天。
因此,政策可能不会立即生效,但会在大约一个月后生效。
例如,假设您为队列配置了 45 天的删除策略。该策略在第 1 阶段结束时变为活动状态,但需要大约一个月的时间来保证删除所有 45 天前的队列项目。这是第一次出现异常,以便作业完成数据积压。
要配置自定义保留策略,请执行以下操作:
如果您不想丢失队列项目数据,但需要从 Orchestrator 数据库中卸载此信息,请存档队列项目。
先决条件:您需要存储桶来存储已存档的队列项目。
-
从“操作”下拉菜单中选择“存档”。
-
选择一个目标存储桶来存储存档项目。
要检索存档信息,请从关联的存储桶中访问存档文件。
注释 1:您可以使用 Orchestrator 存储桶,也可以链接外部存储桶或计算机上的文件系统存储桶。
注意 2:您使用的存储桶不得为只读存储桶,以便系统可通过存档操作向其中添加项目。
注意 3:您可以使用相同的存储桶存档来自不同队列的队列项目。
注意 4:此字段仅适用于“存档”选项。
注意 5:加密队列项目的特定数据和输出数据在存储桶中可见,因为存档操作会在检索时解密数据并将其导出到目标存储位置。
注意 6:系统会在“租户”>“审核”页面上记录成功的存档操作,并会通过“操作”类型将其识别为存档。
注意 7:如果错误中断了存档操作,则会收到警示通知,以便修复错误。系统会在下次运行删除作业时(下一个日历日)重试存档操作。在成功重试存档之前,无法查看或访问受影响的队列项目。
如果您判断经过处理的队列项目数据不再有用,则可以从 Orchestrator 数据库中删除所有这些信息。
-
从“操作”下拉菜单中选择“删除”。
所有最终状态队列项目(包括队列项目事件和注释)都将无限期保留在配置的数据库中。
.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
文件包含有关已存档队列项目的以下信息:
要在客户端中合并保留策略,请在 Swagger 文件中使用队列保留 API 的专用端点:
- GET
/odata/QueueRetention
- 返回所有活动策略的列表,其中包含策略操作、保留持续时间(以天为单位)、要应用策略的队列 ID 等信息。 - GET
/odata/QueueRetention({key})
- 返回有关指定队列的策略信息。 - PUT
/odata/QueueRetention({key})
- 更新有关指定队列的策略信息。 - DELETE
/odata/QueueRetention({key})
- 将指定的队列策略重置为默认值(保留 30 天后删除)。