跳转到内容

按计划自动运行工作流

约 25 分钟 · 一次计划运行、一份运行历史记录、一次已处理的失败

您已经有一个工作流,例如加载、转换和发布数据中的销售数据清理管道。目前,它在您点击运行时才会运行。本教程将这项工作交给 PlaidCloud:工作流按日历自动运行,您将学会如何监视它、证明它已运行,以及在运行失败时恢复它。

让手动管道变成自动化管道需要三件事,本教程依次完成:

  • 计划:在您选定的时间触发工作流的规则。
  • 可信的记录:运行历史记录和日志,告诉您无人值守时发生了什么。
  • 失败预案:无人值守的作业迟早会遇到错误数据,不应静默失败。
计划运行运行历史记录+ 日志恢复从停止的位置继续运行
一旦由计划负责运行,历史记录和日志就是您了解运行是否成功的依据;而恢复则是失败时的修复方法。
  • 一个 PlaidCloud 工作区,其中有一个手动运行时已能正确运行的工作流。如果还没有,请先按照加载、转换和发布数据构建。
  • 有权访问该工作区中的 Analyze → 工具 → 事件调度器。

只为已经通过的工作流安排计划。 自动化会重复工作流所做的一切,包括它的错误,而且现在是无人值守的。在为其设置计划之前,先手动运行一次,直到干净地完成。

打开工作流并手动运行一次,以便获得用于对比的基线。

  1. 打开项目,进入工作流层次结构。
  2. 点击工作流上的运行图标,或打开工作流并从操作菜单中选择 Run All。(工作流表顶部的 Toggle Start/Stop 按钮作用相同,并且可以停止正在进行的运行。)
  3. 观察运行过程中的步骤状态图标。每个步骤都会显示其当前状态和已运行的时长,悬停在图标上可查看相应的消息。

您会看到的状态及其含义:

状态 含义
等待中 已排队,尚未开始。
运行中 正在工作,时长持续累加。
已完成 成功完成。
警告 已完成,但标记了值得在日志中查看的内容。
错误 步骤失败,请参阅管理步骤错误。
已跳过 被略过:已禁用,或未满足其运行条件。
已继续 已失败,但设置为出错时继续,因此运行继续进行。

干净的运行以每个步骤均为已完成结束。这就是您的绿色基线。完整的状态详情请参阅运行工作流。

现在把这次运行交给事件调度器。

  1. 打开 Analyze,选择工具,然后点击事件调度器。Events Table 列出了为工作区配置的所有事件。
  2. 点击添加计划事件。
  3. 填写表单中标记的必填字段,将事件指向刚才运行的工作流(及其项目)。
  4. 打开 Event Schedule 选项卡,选择 Schedule type:
    • Use Classic Schedule:选择具体运行的月份、日期、小时和分钟。可以从很快就会发生的时间开始,例如几分钟之后。
    • Use Workday Schedule:选择财务工作日,而不是时钟时间。工作日计划还可以遵循节假日日历,使运行落在正确的工作日。
  5. 点击创建。

Events Table 现在会列出您的事件,其描述列显示它是按月、按日/小时/分钟,还是按工作日安排的。

除非另行指定,否则时间为伦敦时间。 新事件默认为 UTC +0,会被解读为伦敦时间(包括英国夏令时)。如果“上午 9 点”需要指您所在地的上午 9 点,请在事件上设置时区字段,否则计划运行可能与预期相差数小时。大多数其他偏移量同样遵循当地时间,请参阅事件调度器。

为测试计划设置上限,避免它永远运行。 Limit Running 部分可以让事件仅在设定的时间段内运行设定的次数。对于只是试用的计划,这样可以避免作业悄悄地每隔几分钟触发一次,持续数周。

在信任计划之前,先看看它实际会做什么。

  1. 打开 Upcoming Runs Calendar。这是只读预览,它展开驱动真实执行的同一批计划,所以您看到的就是将要运行的内容,查看不会触发任何操作。
  2. 在月、周和日程视图之间切换;使用上一个、下一步和今天在时间中移动,并使用刷新重新获取最新内容。
  3. 确认事件在预期的时间出现。每次运行都绘制为一个条形,长度与工作流的典型时长成比例。

并排的条形表示重叠。 如果两次运行的条形在同一时间窗口内并排,则这些运行发生冲突;如果它们争用相同的数据或资源,请错开其计划。事件驱动的传感器不会出现在这里,因为它们没有固定的未来时间。请参阅即将进行的运行日历。

如果不想等待时钟,可以在 Events Table 中选择事件并点击运行所选事件立即触发,这是立刻证明计划路径端到端可用的好办法。

步骤 4:查看运行历史记录和日志

Section titled “步骤 4:查看运行历史记录和日志”

自动运行发生时您在别处,因此它留下的记录才是真正可依赖的。

  • 运行历史记录与工作流在一起。每次执行都是单独的条目。恢复的运行会记录为新运行,只包含重新运行的步骤,原来的运行保留自己的条目,因此历史记录如实反映发生过的事情,而不是一条被覆盖的记录。
  • 工作流日志记录事件发生时的情况,例如步骤运行、产生的警告。从项目区域的日志选项卡打开;它也会汇总到更广泛的项目日志中,便于同时监视多个工作流。查看器支持排序和筛选,可以打开任何条目查看详情。请参阅查看工作流日志。
  • 工作流报表记录工作流的当前状态,包括其步骤、函数和变量。它可通过工作流层次结构中的报表图标按需生成,当有人询问自动作业究竟做什么时很有用。请参阅查看工作流报表。

在计划运行或按需运行之后,打开日志,确认预期的运行已在其中,并按预期完成。

无人值守的作业迟早会遇到错误数据。现在就决定出现这种情况时该怎么办:PlaidCloud 提供三种应对方式,具体选择哪一种取决于步骤。

选择 结果 适用时机
停止工作流 运行中止,步骤和工作流上都会显示错误指示。 默认方式:大多数步骤在真正失败后都不应继续。
出错时继续 步骤被标记为错误,但运行将其视为已完成并继续。 缺少数据时失败也无妨的步骤。
补救工作流 失败的运行停止,改为启动第二个工作流。 希望失败时通知某人或尝试自动修复。

有两项设置会影响这一点,都位于步骤表单的常规选项卡上(点击工作流表中该步骤的齿轮图标,或右键单击并选择编辑步骤详细信息):

  • 重试:失败的步骤可以重试设定的次数,两次尝试之间的延迟从几秒到几小时不等。仅此一项就能挽救大多数因远程系统短暂不可用而导致的失败。请参阅管理步骤错误。
  • 出错时要执行的操作:选择继续,步骤失败就不会停止工作流。这样设置的步骤在工作流表中带有特殊指示。请参阅出错时继续。

出错时继续会让失败对补救计划不可见。 标记为继续的步骤永远不会停止工作流,因此也永远不会触发补救工作流,只有原本会中止运行的失败才会触发。仅对确实可以忽略的失败使用出错时继续。

计划运行确实失败时,很少需要从头开始。恢复会从停止的位置继续已停止或出错的运行:它会重新运行未成功完成的步骤,已完成的步骤保持不变。只要工作流上次运行以暂停、停止或出错结束,就可以使用恢复。

无法关闭的自动化是一种隐患。要在不删除计划的情况下使其离线:

  1. 打开 Analyze → 工具 → 事件调度器,点击事件上的编辑图标。
  2. 取消勾选活动复选框,然后点击更新。

事件将停止按计划触发,直到重新激活,编辑路径相同,只需再次勾选活动。如需永久删除,请改用删除图标。处于活动状态的事件会在 Events Table 中显示活动图标,因此一眼就能看出哪些在运行。

设置完成。 现在您有了计划事件、可供查看的运行历史记录,以及处理首次失败的方法,而且可以在不删除的情况下暂停整个流程。